Как вы получаете список всех изображений камеры на устройстве Android?
Это через MediaStore? Как?
Как вы получаете список всех изображений камеры на устройстве Android?
Это через MediaStore? Как?
Приложение Gallery получает изображения с камеры с помощью преобразователя содержимого поверх Изображения .Media.EXTERNAL_CONTENT_URI и фильтрации результатов Media.BUCKET_ID. Идентификатор ведра определяется следующим кодом:
public static final String CAMERA_IMAGE_BUCKET_NAME =
Environment.getExternalStorageDirectory().toString()
+ "/DCIM/Camera";
public static final String CAMERA_IMAGE_BUCKET_ID =
getBucketId(CAMERA_IMAGE_BUCKET_NAME);
/**
* Matches code in MediaProvider.computeBucketValues. Should be a common
* function.
*/
public static String getBucketId(String path) {
return String.valueOf(path.toLowerCase().hashCode());
}
На основании этого, здесь фрагмент, чтобы получить все изображения камеры:
public static List<String> getCameraImages(Context context) {
final String[] projection = { MediaStore.Images.Media.DATA };
final String selection = MediaStore.Images.Media.BUCKET_ID + " = ?";
final String[] selectionArgs = { CAMERA_IMAGE_BUCKET_ID };
final Cursor cursor = context.getContentResolver().query(Images.Media.EXTERNAL_CONTENT_URI,
projection,
selection,
selectionArgs,
null);
ArrayList<String> result = new ArrayList<String>(cursor.getCount());
if (cursor.moveToFirst()) {
final int dataColumn = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
do {
final String data = cursor.getString(dataColumn);
result.add(data);
} while (cursor.moveToNext());
}
cursor.close();
return result;
}
Для получения дополнительной информации просмотрите классы ImageManager и ImageList исходного кода приложения Gallery.