java
String[] projection = { MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, MediaStore.Images.Media.DATE_TAKEN + " DESC");
if (cursor != null && cursor.moveToFirst()) {
String path_camera = Environment.getExternalStorageDirectory().toString() + "/DCIM/Camera/";
while (true) {
int index_id = cursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID);
int index_data = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
long id = cursor.getLong(index_id);
String path = cursor.getString(index_data);
if (path.startsWith(path_camera)) {
Bitmap bitmap = MediaStore.Images.Thumbnails.getThumbnail(getContentResolver(), id, MediaStore.Images.Thumbnails.MINI_KIND, null);
imageButton_album.setImageBitmap(bitmap);
break;
} else
cursor.moveToNext();
}
cursor.close();
}
拍完照要写入媒体数据库
https://blog.51cto.com/vaero/779942
java
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, filename);
values.put(MediaStore.Images.Media.DISPLAY_NAME, filename);
values.put(MediaStore.Images.Media.DATE_TAKEN, System.currentTimeMillis());
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
values.put(MediaStore.Images.Media.DATA, filepath);
getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
MediaScannerConnection.scanFile(MainActivity.this, new String[] { filepath }, null, null);
但是,只能获取系统相机拍摄的照片,自己拍的照片取不到,数据库插入失败?