如何使用selection和selectionArgs通过android ContentResolver.query在sdcard中搜索特定文件名?

时间:2019-02-12 20:55:17

标签: android storage-access-framework

我已经通过DocumentsContract.BuildDocumentUriUsingTree检索到sdcard的uri,现在我试图在包含许多文件的目录中查找文件。我已经尝试了以下代码片段:

selection = "_display_name='111'"; //I haven't use selectionArgs here for simplicity 
context.contentResolver.query(childrenUri, projection, selection, null, null)

我也尝试过“ _display_name =?”并使用selectionArgs,但看起来提供程序完全忽略了我的选择,并始终返回目录中的所有文件。

我已经用Samsung S7-Android 8进行了测试。 如何告诉查询仅查找特定的文件名?

1 个答案:

答案 0 :(得分:0)

假设您使用的提供者为androidx.core.content.FileProvider(根据您在清单中声明的​​内容),{的selectionselectionArgssortOrder参数{1}} ...在AndroidX的实现中根本没有使用!

请参见v1.2.0源here(第409行)

我发现的唯一解决方案是使用您自己的代码对查询后的结果进行过滤和排序。 是的,这有点可悲...