这个答案有一些关于使用 ACTION_OPEN_DOCUMENT_TREE 的好信息:
如何使用为 Android 5.0 (Lollipop) 提供的新 SD 卡访问 API?
在这个答案中是这样的语句“是的,ACTION_OPEN_DOCUMENT_TREE 意图使您可以递归访问现有和新创建的文件和目录。”
我不完全确定我是否正确解释了这一点,因为这不是我在我的经验中发现的。当用户选择根目录时,我将保留以下权限:
content://com.android.externalstorage.documents/tree/primary%3A
稍后我想在以下位置访问子路径:
content://com.android.externalstorage.documents/tree/primary%3APictures%2FScreenshots
然后我尝试按如下方式访问 DocumentFile:
DocumentFile fromDir = DocumentFile.fromTreeUri(this, fromUri);
boolean canRead = fromDir.canRead();
我无法读取 fromDir 并且只能从我已授予权限的根目录中读取。
我需要做些什么来请求递归许可或任何其他简单的方法来实现这一点吗?