/**
* 保存拍照的图片是否已经完成
*
* @param context Context 对象
* @return 查询成功返回 true ,否则返回false
*/
private static boolean isSavePictureComplete(@NonNull final Context context, long takeTime) {
final Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
final String[] columns = new String[]{
MediaStore.Images.Media.DATE_ADDED,
MediaStore.Images.Media._ID,
MediaStore.Images.Media.SIZE};
//扫描图片
final ContentResolver contentResolver = context.getContentResolver();
Cursor cursor = null;
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q/*29*/) {
final Bundle bundle = new Bundle();
bundle.putString(ContentResolver.QUERY_ARG_SQL_SELECTION, MediaStore.MediaColumns.SIZE + " > ?");
bundle.putStringArray(ContentResolver.QUERY_ARG_SQL_SELECTION_ARGS, new String[]{"0"});
bundle.putStringArray(ContentResolver.QUERY_ARG_SORT_COLUMNS, new String[]{MediaStore.Files.FileColumns._ID});
bundle.putInt(ContentResolver.QUERY_ARG_SORT_DIRECTION, ContentResolver.QUERY_SORT_DIRECTION_DESCENDING);
bundle.putInt(ContentResolver.QUERY_ARG_LIMIT, 1);
bundle.putInt(ContentResolver.QUERY_ARG_OFFSET, 0);
cursor = contentResolver.query(uri, columns,
bundle,
null);
} else {
cursor = contentResolver.query(uri, columns,
MediaStore.MediaColumns.SIZE + ">0",
null,
MediaStore.Files.FileColumns._ID + " DESC limit 1 offset 0");
}
//读取扫描到的图片
if ((null != cursor) && (cursor.getCount() > 0) && cursor.moveToFirst()) {
//获取图片时间
long time = cursor.getLong(cursor.getColumnIndex(MediaStore.Images.Media.DATE_ADDED));
if (String.valueOf(time).length() < 13) {
time *= 1000;
}
// 如果照片的插入时间大于相机的拍照时间,就认为是拍照图片已插入
return time + 1000 < takeTime;
}
} finally {
if (null != cursor) {
cursor.close();
}
}
return true;
}