前提条件:app需要申请READ_EXTERNAL_STORAGE权限
原理:root手机查看/data/data/com.android.providers.media下的database,根据表结构,可获取date_added属性来查询图片生成时间。
/**
* 获取最新图片,1分钟以内最新图片
* @return String
*/
public static String getNewestPhoto() {
ArrayList<String> list = new ArrayList<String>();
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线程
网友评论