这个答案有一些关于使用ACTION_OPEN_DOCUMENT_TREE的好信息:
How to use the new SD card access API presented for Android 5.0 (Lollipop)?
在这个答案中是声明“是的,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,我只能从我已授予权限的根目录中读取 .
有什么我缺少的,我需要做的是请求递归权限或任何其他简单的方法来实现这一点?