【发布时间】:2020-10-10 18:40:29
【问题描述】:
我的目标是 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 为目标时,从此方法返回的路径不再可供应用直接访问
【问题讨论】:
-
developer.android.com/training/data-storage/files/…。下载的文档和电子书不需要额外的权限。
-
当你使用 SAF 时,我不会
-
作为实验,请尝试下载图像或其他文件类型,看看您是否仍有访问权限。
-
没区别,我还是可以从下载文件夹打开的
标签: android android-download-manager storage-access-framework android-10.0 scoped-storage