我针对 Android 10 进行开发,并且没有使用
编辑:
android:requestLegacyExternalStorage
。我使用 DownloadManager
将文件下载到 download 文件夹中,代码如下: request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName)
。我监听下载完成的广播,提取 uri (file:///storage/emulated/0/Download/<name>.pdf
),然后通过 FileProvider
在 pdf 阅读器中打开它。这种方式能够正常工作...为什么?难道不应该因为 Android 10 的 scoped storage 而无法工作吗?为什么我可以访问 download 文件夹中的文件?编辑:
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).listFiles()
列出所有的文件,尽管文档中写道:
为了提高用户隐私保护,直接访问共享/外部存储设备已被弃用。当应用程序定位到 Q 时,此方法返回的路径不再直接可供应用程序访问。