如何解决如何让 Android 10+ 用户从我的应用中的下载文件夹中导入 zip 文件?
我的创意应用没有在线后端,因此用户可以导出一个 zip 文件来备份/传输他们的创意。然后在他们的另一个(新)设备上,他们可以从他们的下载文件夹中导入 zip 文件。在应用程序中,压缩文件被解压缩并重新创建内容(文本、音频、图像)。
自 Android 10(及更高版本)以来,文件和权限的工作方式有所不同。
在https://developer.android.com/training/data-storage/shared/documents-files#grant-access-directory
它说:
使用 ACTION_OPEN_DOCUMENT_TREE 时,您的应用只能访问用户选择的目录中的文件。
在 Android 11(API 级别 30)及更高版本上,您不能使用 ACTION_OPEN_DOCUMENT_TREE 意图操作请求访问 [...] 下载目录。
https://developer.android.com/about/versions/10/privacy/changes
默认情况下,面向 Android 10 及更高版本的应用会获得对外部存储或范围存储的范围访问。此类应用可以查看外部存储设备中的以下类型的文件,而无需请求任何与存储相关的用户权限:
- 应用特定目录中的文件,使用 getExternalFilesDir() 访问。
- 该应用从媒体商店创建的照片、视频和音频剪辑。
https://developer.android.com/about/versions/11/privacy/storage
(据我所知,关于我的问题的规则与 10 相同)
由于我的文件不是媒体文件,似乎无法让用户从列表中选择文件。
我实际上认为我当前的解决方案(文件选择器,指向 Environment.getExternalStorageDirectory()
)有效,因为它在模拟器中有效。但是今天我拿到了一台装有 Android 10 的新设备,但它失败了。
我发现很难找到这个问题的答案,因为搜索词和文档都围绕媒体文件(主要是图像)进行解析。
用户可以导入 zip 文件的任何方式都可以。但是对于普通用户来说,首先将下载的/USB 传输的文件移动到应用程序特定的文件夹或类似的文件夹中是相当困难的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。