gpt4 book ai didi

java - Android - Java - MediaStore - 如何使用多个条件的选择

转载 作者:太空宇宙 更新时间:2023-11-04 12:57:37 25 4
gpt4 key购买 nike

我不想从 Android 设备获取所有文档 (Docs) 文件。我将 ContentResolver 与 MediaStore.Files 结合使用来实现这一目标。我可以从一种类型获取所有文件,例如: pdf ,但我想知道如何从多种类型获取文件。

我的代码:

    String selection = MediaStore.Files.FileColumns.MIME_TYPE + "=?" +
"";
String[] selectionArgs = new String[] { MimeTypeMap.getSingleton().getMimeTypeFromExtension("pdf")};

ArrayList<MyFile> list = new ArrayList<MyFile>();

Uri contentUri = MediaStore.Files.getContentUri("external");


String[] columns = {
MediaStore.Files.FileColumns.MIME_TYPE ,
MediaStore.Files.FileColumns.MEDIA_TYPE ,
MediaStore.Files.FileColumns.DATA ,
};
String SortOrder = null;


Cursor cursor = contentR.query(contentUri ,
columns ,
selection ,
selectionArgs ,
SortOrder);

如何将选择和 selectioArgs 用于多个条件,例如 SQL 中的 OR 、 AND ...SelectionArgs 将包含我正在寻找的所有文件类型: pdf 、 txt 、 doc ...

例如:选择= MediaStore.Files.FileColumns.MIME_TYPE +“=?” +“或”+MediaStore.Files.FileColumns.MIME_TYPE +“=?” ;

SelectionArgs = {"pdf", "txt"};

感谢您的帮助或指导:-)

最佳答案

您只需要添加更多的选择参数,每个参数对应每种文件类型。或者您只需创建一个列表或数组,其中包含所有文件类型作为字符串。接下来,您只需要一个循环,转到下一个文件类型,直到没有剩余的文件类型。例如:

ArrayList<MyFile> list  = new ArrayList<MyFile>();
ArrayList<String> fileTypeArray = new ArrayList<DString>();

for(int i = 0; i < fileTypeArray.size(); i++){
String selection = MediaStore.Files.FileColumns.MIME_TYPE + "=?" + "";
String[] selectionArgs = new String[] { MimeTypeMap.getSingleton().getMimeTypeFromExtension(fileTypeArray.get(i))};

Uri contentUri = MediaStore.Files.getContentUri("external");
String[] columns = {
MediaStore.Files.FileColumns.MIME_TYPE ,
MediaStore.Files.FileColumns.MEDIA_TYPE ,
MediaStore.Files.FileColumns.DATA ,
};
String SortOrder = null;

Cursor cursor = contentR.query(contentUri ,
columns ,
selection ,
selectionArgs ,
SortOrder);
}

关于java - Android - Java - MediaStore - 如何使用多个条件的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35230755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com