【发布时间】:2021-04-16 11:34:57
【问题描述】:
我正在尝试访问设备下载/目录中的文件。 由于 ACTION_OPEN_DOCUMENT_TREE Intent 的 Scoped Storage 更新和限制,我找不到任何方法来获取 URI 或 smth 来使用。 我想阅读下载目录中的所有文件,看看它们是否符合我搜索的 MIME 类型。
我试过了:
-
Environment.getExternalStoragePublicDirectory(DIRECTORY_DOWNLOADS)-> 已弃用 -
context.contentResolver.query(MediaStore.Downloads.getContentUri(MediaStore.VOLUME_INTERNAL),projection,null,null,null)-> 无法访问不是由您的应用在下载目录中创建的文件 (https://developer.android.com/training/data-storage/shared/media) - 使用 ACTION_OPEN_DOCUMENT_TREE Intent 获取访问权限 -> 自 API 30 起不再显示下载目录 (https://developer.android.com/training/data-storage/shared/documents-files#grant-access-directory)
如果您需要更多信息,请告诉我。 我希望有人有一个想法:)
【问题讨论】:
-
Restrictions for the ACTION_OPEN_DOCUMENT_TREE Intent用户确实不能选择下载目录。但是使用 ACTION_OPEN_DOCUMENT 中的每个文件。 -
如果你想以经典的方式列出
Download目录下的所有文件,你需要请求all files access以MANAGE_EXTERNAL_STORAGE开头的权限。 -
Since API 30 dosnt show Download Directory anymore很难相信。不在这里。全部显示,但目录不可选择。 -
ACTION_OPEN_DOCUMENT是唯一的选择:youtube.com/watch?v=CGD1Kr7A77Y&t=4s
标签: android android-studio kotlin file-access