0

我正在尝试使用以下代码通过其名称获取特定文件,但是,看起来选择参数被忽略了,因为它总是返回根树的第一个文件

final ContentResolver resolver = mContext.getContentResolver();
final Uri childrenUri = DocumentsContract.buildChildDocumentsUriUsingTree(mUri, DocumentsContract.getDocumentId(mUri));

Cursor c = null;
try {
    c = resolver.query(childrenUri, new String[] { DocumentsContract.Document.COLUMN_DOCUMENT_ID }, DocumentsContract.Document.COLUMN_DISPLAY_NAME + " = ?", new String[] { displayName }, null);
    if (c.moveToFirst()) {
        final String documentId = c.getString(0);
        final DocumentFile result = new TreeDocumentFile(this, mContext, DocumentsContract.buildDocumentUriUsingTree(mUri, documentId));
        return result;
    }
} catch (Exception e) {
    Log.w(TAG, "Failed query: " + e);
} finally {
    closeQuietly(c);
}

基本上结果与以下查询相同

c = resolver.query(childrenUri, new String[] { DocumentsContract.Document.COLUMN_DOCUMENT_ID }, null. null, null);

知道为什么吗?

4

0 回答 0