Android contentResolver不在子目录中递归搜索

Android contentResolver不在子目录中递归搜索,android,android-contentresolver,Android,Android Contentresolver,我正在尝试使用contentResolver和游标递归搜索目录 c = resolver.query(childrenUri, null, null, null, null); while (c.moveToNext()) { final String documentId = c.getString(0); final Uri documentUri = DocumentsContract.buildDocumentUriUsingTree(mUri,

我正在尝试使用
contentResolver
游标递归搜索目录

c = resolver.query(childrenUri, null, null, null, null);
     while (c.moveToNext()) {
        final String documentId = c.getString(0);
        final Uri documentUri = DocumentsContract.buildDocumentUriUsingTree(mUri,
                    documentId);
        results.add(documentUri);

}
childrenUri:
content://com.android.providers.downloads.documents/tree/downloads/document/downloads/children

但是我只从下载文件夹中的文件和子目录的documentURI中获取documentURI,而不是子目录中文档的documentURI

我做错了什么

谢谢
Fischer Peter

我建议使用
DocumentFile.fromTreeUri()
获取文档树
Uri
并获取可以
listFiles()的对象
获取子树和树中的文档。是否可以获取嵌套的子目录及其文档?您可以使用与
文件
相同的方法进行操作。使用
File
DocumentFile
,可以调用
listFiles()
查找树的内容。在每个子级上,您将调用
isDirectory()
,以查看它是否是子树——对于那些子树,使用递归(或其他方法)向下遍历。请注意,使用文档比使用文件系统慢得多,因为每个请求都需要几轮IPC。我有关于这方面的笔记。想知道为什么在Android中没有更快的方法从一个已知树获取所有文件。我以为内容提供商可以提供这样的信息……是的,我同意你的看法。现在我要做一些编码…谢谢你的链接。你的博客做得很好……在“使用文档树”后面的链接似乎已经死了