【问题标题】:How to request permission to write to removable sd card in Android 5.0 and above如何在 Android 5.0 及更高版本中请求写入可移动 sd 卡的权限
【发布时间】:2017-08-20 02:27:04
【问题描述】:

一个简单的问题。默认情况下,android 不允许 3rd 方应用写入可移动 sd 卡。

但在 Android 5.0 中,我可以请求写入可移动 sdcard 并在该目录中写入任何文件的权限。

那该怎么做呢?我需要一个输出流来写入文件。

【问题讨论】:

  • 你指的是external storage还是removable storage
  • @CommonsWare 我说的是可移动存储。我已经编辑了我的帖子。我发现很多文章在 Android 6.0 (Marshmallow) 中请求写入权限,但我没有找到如何在 Android 5.0 (Lollipop) 中做到这一点
  • 它对您了解如何请求写入权限没有多大帮助,因为 Android 5 及更高版本的 micro SD 卡是不可写的。只能写入其上的应用特定目录。

标签: android uri android-5.0-lollipop file-permissions


【解决方案1】:

我可以请求写入外部 sdcard 的权限并在该目录中写入任何文件。

不是真的。

在 Android 4.4+ 上,您可以使用 getExternalFilesDirs()getExternalCacheDirs()getExternalMediaDirs()。如果返回 2 个以上的项目,则第二个和后续的将是可移动存储上的位置。

在 Android 5.0+ 上,您可以使用 ACTION_OPEN_DOCUMENT_TREE 请求用户授予您访问文档树的权限。 可能是可移动存储的根...或用户想要使用的任何其他东西。这为您提供了一个Uri 返回,您可以将其与DocumentFile 和存储访问框架的其余部分一起使用。它确实为您提供文件系统访问权限(例如,通过File)。

在 Android 7.0+ 上,您可以使用 StorageManagerStorageVolume 请求访问可移动存储卷。不过,再一次,您将获得一个 Uri 以与 DocumentFileContentResolver 等一起使用 - 您无法获得文件系统访问权限。

【讨论】:

  • es explorer是怎么做的?
猜你喜欢
  • 1970-01-01
  • 2016-12-21
  • 1970-01-01
  • 2011-01-08
  • 1970-01-01
  • 2017-02-19
  • 2023-01-25
  • 2017-12-21
  • 1970-01-01
相关资源
最近更新 更多