我的目标是android 10,并且我不使用android:requestLegacyExternalStorage
。我使用DownloadManager
通过request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName)
下载到下载文件夹中。我收听了下载完成广播,提取了uri(file:///storage/emulated/0/Download/<name>.pdf
),然后通过FileProvider
在pdf阅读器中将其打开。有效...为什么?从android 10和范围存储开始,它不应该不工作吗?为什么允许访问下载文件夹中的文件?
编辑:Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).listFiles()
列出了所有文件,尽管医生说:
为提高用户隐私,不建议直接访问共享/外部存储设备。当应用定位到Q时,此方法返回的路径不再可供应用直接访问
答案 0 :(得分:1)
这是解决方案:
如果在启用了旧版外部存储的情况下安装了应用,则该应用将一直保持此模式,直到将其卸载。
更改标志并重新启动应用程序无效。