Мне сложно предварительно просмотреть PDF-документ на SD-карте / во внутренней памяти Android, поскольку у него нет собственного API. Я пробовал следующее:

Intent showIntent = new Intent(Intent.ACTION_VIEW);
showIntent.setDataAndType(uri, "application/pdf");
showIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(showIntent);

Но это не работает.

Я попытался проверить с помощью Webview, но все равно безрезультатно.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_web_view);

    String file = getIntent().getStringExtra("previewfile");

    webView = (WebView) findViewById(R.id.webView1);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.loadUrl("http://docs.google.com/gview?embedded=true&url="+file);}

Я видел некоторые библиотеки, которые можно использовать, если файл присутствует в папке активов, но единственная проблема в том, что я не могу программно поместить файл в папку активов.

Есть ли способ предварительно просмотреть файл, хранящийся на SD-карте? Пожалуйста помоги.

0
Munish 24 Май 2018 в 09:07

1 ответ

Лучший ответ

Вы попробовали все ответы на вопрос, указанный ниже?

Как открыть PDF-файл с помощью намерения с SD-карты

Следующий код должен работать нормально.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
   File file=new File(mFilePath);
   Uri uri = FileProvider.getUriForFile(this, getPackageName() + ".provider", file);
   intent = new Intent(Intent.ACTION_VIEW);
   intent.setData(uri);
   intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
   startActivity(intent);
   } else {
   intent = new Intent(Intent.ACTION_VIEW);
   intent.setDataAndType(Uri.parse(mFilePath), "application/pdf");
   intent = Intent.createChooser(intent, "Open File");
   intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
   startActivity(intent);
   }
0
Mithun M 24 Май 2018 в 06:19