我无法获得对设备SD卡根目录的写访问权。我可以毫无问题地写入SD卡中的设备内部存储和应用包文件夹。我发现可以使用Storage Access Framework获得对SD卡的访问权限,因此我查看了其他应用程序以了解它们如何获得对SD卡的访问权限,并找到了Total Commander及其简洁的权限对话框。
因为找不到任何示例,如何显示这样的对话框?我的目标是在卸载应用程序后将大文件存储在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,因为这似乎是最用户友好的方式。