Jak uzyskać listę wszystkich zdjęć z kamer urządzenia z systemem Android?Lista wszystkich zdjęć z aparatu w Androidzie
Czy to przez MediaStore? W jaki sposób?
Jak uzyskać listę wszystkich zdjęć z kamer urządzenia z systemem Android?Lista wszystkich zdjęć z aparatu w Androidzie
Czy to przez MediaStore? W jaki sposób?
Aplikacja Galeria pobiera obrazy z kamer przy użyciu content resolver przez Images.Media.EXTERNAL_CONTENT_URI i filtruje wyniki przez Media.BUCKET_ID. Identyfikator wiadro jest określana za pomocą następującego kodu:
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());
}
Bazując na tym, oto fragment kodu, aby uzyskać wszystkie obrazy z kamer:
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;
}
Aby uzyskać więcej informacji, zapoznaj się z klas ImageManager i Imagelist z Galerii kod źródłowy aplikacji.
Nie wszystkie urządzenia zapisują zrobione zdjęcia/filmy w "/ DCIM/Camera". HTC chce HD, na przykład, zapisuje na "/ DCIM/100MEDIA" –
A my nie powinniśmy za to nienawidzić HTC Desire HD. – hpique
Można jednak po prostu wyświetlać wszystkie pliki, używając File api zamiast używać kursorów DB. –
To może Ci pomóc http://groups.google.com/group/android-developers/browse_thread/thread/e704c7c928dd2682 – ninjasense