我无法获得对设备SD卡根目录的写访问权。我可以毫无问题地写入SD卡中的设备内部存储和应用包文件夹。我发现可以使用Storage Access Framework获得对SD卡的访问权限,因此我查看了其他应用程序以了解它们如何获得对SD卡的访问权限,并找到了Total Commander及其简洁的权限对话框。

Android-询问写入SD卡权限对话框-LMLPHP

因为找不到任何示例,如何显示这样的对话框?我的目标是在卸载应用程序后将大文件存储在SD卡上。

类似问题:

Android (Write on external SD-Card): java.io.IOException: Permission denied

Android M write to SD Card - Permission Denied

Android SD Card Write Permission using SAF (Storage Access Framework)

最佳答案

不幸的是,现在在Android Q中不推荐使用createAccessIntent,并且documentation指出,如果在Android Q中使用它,它将立即返回RESULT_CANCELED。

他们建议您将 Intent 与ACTION_OPEN_DOCUMENT_TREE一起使用。您可以指定它最初打开的目录(仅在Android O及更高版本上受支持),使用户更容易使用,但这仍然不是一种非常用户友好的方法。

我想知道是否还有其他任何人都知道的用户友好解决方案?我不明白为什么Android删除了createAccessIntent,因为这似乎是最用户友好的方式。

10-07 19:34
查看更多