[英]How to gain access to a specific folder and write a file into it using Scoped Storage
[英]Scoped Storage - Download folder access
我的目标是 android 10,我不使用android:requestLegacyExternalStorage
。 我使用DownloadManager
通过以下方式下载到下载文件夹: request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName)
。 我收听下载完整广播,提取 uri( file:///storage/emulated/0/Download/<name>.pdf
)并通过FileProvider
在 pdf-reader 中打开它。 它有效......为什么? 自 android 10 和范围存储以来,它不应该不起作用吗? 为什么我可以访问下载文件夹中的文件?
编辑: Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).listFiles()
列出了所有文件,尽管文档说:
为了提高用户隐私,不推荐直接访问共享/外部存储设备。 当应用以 Q 为目标时,此方法返回的路径不再可供应用直接访问
这是解决方案:
如果应用程序安装时启用了旧外部存储,则该应用程序将保持此模式,直到卸载为止。
更改标志并重新启动应用程序不起作用。
编辑:由于请求了来源。 自从我第一次看到它时页面发生了变化,所以引用不再是 100% 正确,但仍然: 在蓝色框中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.