我想加载用户设备中的所有图像。我知道可以使用Media Store加载图像,但对我来说最大的缺点是使用Media Store不会加载/检索文件夹中存在.nomedia
文件的图像。
是否有一种使用Media Store或不使用Media Store加载Android设备中存在的所有图像的有效方式,无论其父文件夹是否具有.nomedia
文件?
我正在加载父目录没有.nomedia
文件的图像:
public void getImages(Context context) {
File Image_File;
final String[] columns = {MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID};
String orderBy = MediaStore.Images.Media.DATE_MODIFIED ;
Cursor cursor = context.getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null,
null, orderBy);
if (cursor != null)
{
cursor.moveToFirst();
final int dataColumnIndex = cursor.getColumnIndex(MediaStore.Images.Media.DATA);
while (cursor.moveToNext()) {
Image_File = new File(cursor.getString(dataColumnIndex));
//Add the Image to the list
}
}
}
我知道我可以扫描每个文件夹并检查其中是否存在图像,但会耗费大量时间。
答案 0 :(得分:0)
MediaStrore不扫描包含.nomedia
文件的目录。
所以你不能要求MediaStore提供它们。
你确实必须建立自己的媒体商店。