在通过Intent ACTION_VIEW打开pdf文件时,我收到此消息,并在显示消息后关闭pdf查看器应用程序。在所有版本的Android中都会出现此行为。我很惊讶相同的文件正在共享,它的工作原理。此外,我能够使用类似的FileProvider查看另一种文件类型。如果您有任何解决方案,请告诉我。
Intent intentShowPDF = new Intent(Intent.ACTION_VIEW);
if (directory != null) {
// So you have to use Provider
Uri uri = FileProvider.getUriForFile(activity, "in.everybill.business.fileprovider", directory);
intentShowPDF.setDataAndType(uri,"application/pdf");
intentShowPDF.setType("application/pdf");
intentShowPDF.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intentShowPDF.setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
intentShowPDF.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
activity.startActivity(intentShowPDF);
} catch (ActivityNotFoundException e) {
Uri marketUri = Uri.parse("https://play.google.com/store/apps/details?id=com.google.android.apps.pdfviewer");
Intent intent = new Intent(Intent.ACTION_VIEW, marketUri);
staticContext.startActivity(intent);
}
} else {
showToast("Failed");
}
清单文件
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="in.everybill.business.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>