Android获取最近拍摄的图片

前提条件:app需要申请READ_EXTERNAL_STORAGE权限

原理:root手机查看/data/data/com.android.providers.media下的database,根据表结构,可获取date_added属性来查询图片生成时间。

/**
* 获取最新图片,1分钟以内最新图片
* @return String
*/
public static String getNewestPhoto() {
    ArrayList list = new ArrayList();
    Cursor cursor = null;
    try{
        long currentTime = System.currentTimeMillis()/ 1000 - 60;
        cursor = MyApplication.getContext().getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[]{MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA},
                    MediaStore.Images.Media.DATE_ADDED + " >= ?", new String[]{currentTime + ""}, MediaStore.Images.Media.DATE_ADDED + " DESC");
        if (cursor != null) {
            if (cursor.moveToFirst()) {
                return cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA));
            }
        }
    }catch(Exception e){
        e.printStackTrace();
    }finally{
        if (cursor != null){
            cursor.close();
        }
    }
    return null;
}

建议异步调用该方法,不要放在ui线程

你可能感兴趣的:(Android获取最近拍摄的图片)