如何在Android 5.0及更高版本中请求写入可移动SD卡的权限

时间:2017-03-27 11:40:03

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

一个简单的问题。默认情况下,android不允许第三方应用程序写入可移动SD卡。

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

那怎么办呢?我需要输出流来写入文件。

1 个答案:

答案 0 :(得分:1)

  

我可以请求允许写入外部SD卡并在该目录中写入任何文件。

不是。

在Android 4.4及更高版本中,您可以使用getExternalFilesDirs()getExternalCacheDirs()getExternalMediaDirs()。如果它们返回2个以上的项目,则第二个和后续项目将成为可移动存储的位置。

在Android 5.0及更高版本中,您可以使用ACTION_OPEN_DOCUMENT_TREE来要求用户授予您访问文档树的权限。 可能是可移动存储的根源......或者用户想要使用的任何其他东西。这会为您提供Uri后退,您可以将其与DocumentFile以及存储访问框架的其余部分一起使用。它为您提供文件系统访问权限(例如,通过File)。

在Android 7.0及更高版本中,您可以使用StorageManagerStorageVolume来请求访问可移动存储卷。不过,您再次使用UriDocumentFileContentResolver等等 - 您无法获得文件系统访问权限。