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