Я пытаюсь найти все папки в моем внутреннем хранилище, которые содержат изображения.Для этого я использую курсор.Курсор не нулевой, он пустой, есть ли другое место, на которое я должен обратить внимание, чтобы найти эти папки?
imageFolders = new ArrayList<String>();
String[] projection = new String[]{
MediaStore.Images.Media.DATA,
MediaStore.Images.Media._ID,
MediaStore.Images.Media.BUCKET_DISPLAY_NAME,
MediaStore.Images.Media.DATE_TAKEN};
System.out.println("Print progress: Created String Projection");
System.out.println("Print progress: " + projection[0] + " " + projection[1] + " " + projection[2] + " " + projection[3]);
Uri imageUri = MediaStore.Images.Media.INTERNAL_CONTENT_URI ;
System.out.println("Print progress: images uri " + imageUri);
final String orderBy = android.provider.MediaStore.Images.Media.DATE_TAKEN;
System.out.println("Print progress: orderBy " + orderBy);
Cursor cur = getContentResolver().query(imageUri, projection, // Which columns to return
null, // Which rows to return (all rows)
null, // Selection arguments (none)
orderBy + " DESC" // Ordering
);
System.out.println("Print progress: cursor created");
ArrayList<String> imagePath;
if (cur.moveToFirst()) {
System.out.println("Print progress: entered cursor"
);
String bucket, date;
int bucketColumn = cur.getColumnIndex(MediaStore.Images.Media.BUCKET_DISPLAY_NAME);
System.out.println("Print progress: bucketColumn: " + bucketColumn);
int dateColumn = cur.getColumnIndex(MediaStore.Images.Media.DATE_TAKEN);
System.out.println("Print progress: dateColumn: " + dateColumn);
do {
bucket = cur.getString(bucketColumn);
System.out.println("Print progress: bucket: " + bucket);
date = cur.getString(dateColumn);
System.out.println("Print progress: date: " + date);
if (!imageFolders.contains(bucket)) {
imageFolders.add(bucket);
}
imagePath = listImageByFolder.get(bucket);
if (imagePath == null) {
imagePath = new ArrayList<String>();
}
imagePath.add(cur.getString(cur
.getColumnIndex(MediaStore.Images.Media.DATA)));
listImageByFolder.put(bucket, imagePath);
} while (cur.moveToNext());
}
System.out.println("Print progress: Found the Internal Image Folders");
return imageFolders;