相关疑难解决方法(0)

在 Android 11 上写入许多文件

设想

我正在尝试创建许多文件,作为用户的一项功能。例如,我可能会编写一个应用程序,为他们过去几周听过的每首歌曲创建一个文件(例如,带有歌词的文本文件)。我不能让用户为我生成的每个文件选择目录和文件名,这需要他们几个小时。用户应该可以从其他应用程序访问这些文档。

解决方案(不是真的)

在 Android 11 中,存储访问框架似乎没有用处。我注意到最初有两个有趣的选项:

  1. 创建一个新文件(创建用户与之交互的启动活动以仅保存一个文件),描述here
  2. 授予对目录内容的访问权限(允许读取访问,但无法写入任何文档),描述为here
  3. 注意:如果您面向 Android 10 并请求WRITE_EXTERNAL_STORAGE. 不幸的是,此权限在 Android 11 上被拒绝。因此,我无法使用此处发布的解决方案。
  4. 使用存储访问框架(特别是 ACTION_OPEN_DOCUMENT_TREE)访问目录以访问目录,但我无法将文件写入此目录。(我明白了FileNotFoundException,因为这不是普通路径,而是树路径。)

判决书

我想在我的情况下,我需要沿着“管理存储设备上的所有文件”的路线走下去,如此处所述这涉及使用ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION. 我宁愿不请求读取整个驱动器的权限,也不想让用户进入设置应用程序以授予权限。写入文件不应该需要任何权限...

您将如何为用户保存许多(非媒体)文件?

android storage-access-framework

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

storage-access-framework ×1