如何解决Android:为什么我无法在Android 11的公共Download / myfolder目录中打开从DownloadManager下载的pdf?
我在Android 9和Android 10中都没有遇到这个问题,因此选择了Legacy Storage。但是在Android 11中,我无法打开从下载管理器下载的文件。不过,可以从文件管理器中打开同一文件。
此外,我检查了该文件的所有者,它显示的是com.android.providers.downloads,而不是我的应用。
我还在Document / myfolder目录中创建一个pdf文件,可以使用intent轻松打开它,而我的应用程序就是该文件的所有者。
此外,如果我将下载的文件保存到Document / myfolder目录中,仍然无法使用该意图将其打开。
根据我的理解,从Android 11开始,他们引入了作用域存储,以及该文件的所有者是否正在访问它。它将允许通过READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限进行读取/写入。
对于这两个文件,我都使用相同的Intent。
任何人都知道如何更改下载文件的所有者,以便我可以打开文件,或者是我无法打开该下载文件的确切原因是什么?
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri,PDF_TYPE);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
此处PDF_TYPE正确,而uri也正确。
DownloadManager代码在此处也是正确的一小段
.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,subPath.getPath());
解决方法
我遇到了同样的问题,但在 Android 10 中。
这在 Android 11 中对我有用
Uri uri = FileProvider.getUriForFile(context,BuildConfig.APPLICATION_ID,file);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。