问题描述
场景
我正在尝试创建许多文件,作为用户的功能。例如,我可能写了一个应用程序,该应用程序为过去几周内他们收听的每首歌都创建了一个文件(例如带有歌词的文本文件)。我无法让用户为我生成的每个文件选择目录和文件名,这将花费几个小时。用户应该可以从其他应用程序访问这些文档。
解决方案(不是真的)
在Android 11中,似乎Storage Access Framework没用。我注意到最初有2种有趣的选择:
- 创建新文件(创建与用户互动的启动活动,仅保存一个文件),here
- 授予访问目录内容的权限(允许进行读取访问,但无权编写任何文档),如here所述。
- 注意:如果您将Android 10作为目标并请求
WRITE_EXTERNAL_STORAGE
,则已经存在解决方案。不幸的是,此权限在Android 11上被拒绝。因此,我无法使用发布于here的解决方案。 - 使用Storage Access Framework(特别是
ACTION_OPEN_DOCUMENT_TREE
)来访问目录,以访问目录,但是我无法将文件写入该目录。 (我得到FileNotFoundException
,因为这不是普通路径,而是树路径。)
判决
我猜想我需要遵循“管理存储设备上的所有文件”的路线,如here所述,其中涉及使用ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
启动额外的活动。我宁可不要请求读取 entire 驱动器的权限,也不要让用户进入设置应用程序以授予权限。写入文件不需要任何权限...
您将如何为用户保存许多(非媒体)文件?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)