выполнение запроса с помощью MediaStore.Images.Media не показывает все изображения, независимо от того, запрашивает ли он внутренний контент или внешний контент
Результаты (миниатюры и место, откуда эти миниатюры извлекаются) различаются даже на основных устройствах. Устройства без SD-карты и только с внутренней памятью имеют разные результаты изображения, устройства Samsung имеют разные результаты, устройства Google имеют разные результаты.
В частности, с этим кодом, который используется вокруг stackoverflow в качестве решения,
final String[] columns = {MediaStore.Images.Thumbnails._ID};
final String orderBy = MediaStore.Images.Media._ID;
Cursor imagecursor = context.getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns,
null, null, orderBy);
if (imagecursor != null) {
int image_column_index = imagecursor
.getColumnIndex(MediaStore.Images.Media._ID);
int count = imagecursor.getCount();
for (int i = 0; i < count; i++) {
imagecursor.moveToPosition(i);
int id = imagecursor.getInt(image_column_index);
ImageItem imageItem = new ImageItem();
imageItem.id = id;
lastId = id;
imageItem.img = MediaStore.Images.Thumbnails.getThumbnail(
context.getApplicationContext().getContentResolver(), id,
MediaStore.Images.Thumbnails.MINI_KIND, null);
images.add(imageItem);
}
imagecursor.close();
Я смотрю на код, и он кажется здравым, но мне нужно лучшее решение, потому что результаты различаются, и на некоторых устройствах я понятия не имею, откуда были взяты получившиеся эскизы.