[英]Read a PDF on Android 10
需要在 Android 10 上阅读 PDF 以下代码在 Android 9.0 上运行良好,但在 Android 10 上,负责显示 PDF 的应用程序只是闪烁并返回到我的应用程序。
File pdfFile = new File(getExternalFilesDir(null), "Pdf");
pdfFile.setReadable(true);
if (pdfFile.exists()) {
if (pdfFile.canRead()) {
if (pdfFile.canWrite()) {
Uri path = Uri.fromFile(pdfFile);
Intent objIntent = new Intent(Intent.ACTION_VIEW);
objIntent.setDataAndType(path, "application/pdf");
objIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivityForResult(objIntent, req_code);
}else{
Toast.makeText(MainActivity.this, "Not writable! ", Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(MainActivity.this, "Not readable! ", Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(MainActivity.this, "The file does not exists! ", Toast.LENGTH_SHORT).show();
}
在 onActivityResult 方法上,我收到 RESULT_CANCELED 作为 result_code 和 data == null。
以下代码在 Android 9.0 上运行良好
您项目中的某个人做了一些不幸的事情,让该代码在 Android 9 上运行。它应该在三年前失败,从 Android 7.0 开始,带有FileUriExposedException
。
在 Android 10 上,应用无权访问外部存储,除了少数特定于应用的有限位置。 这就是谷歌从 Android 7.0 开始警告你不应该再使用Uri.fromFile()
警告。
三年前的正确解决方案——今天也是正确的解决方案——是使用FileProvider
使 PDF 可用于 PDF 查看器应用程序。
也可以看看:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.