context.contentResolver遍历照片根据时间条件 比如查询2023-05-01到最新的一张
时间: 2023-08-13 18:08:33 浏览: 148
好的,您的问题是如何使用context.contentResolver遍历照片并根据时间条件查询,比如查询从2023-05-01到最新的一张照片。我可以给您提供以下代码示例,请参考:
```java
String[] projection = {MediaStore.Images.Media._ID, MediaStore.Images.Media.DISPLAY_NAME, MediaStore.Images.Media.DATE_TAKEN};
String selection = MediaStore.Images.Media.DATE_TAKEN + ">=?";
String[] selectionArgs = {String.valueOf(getDateInMillis("2023-05-01"))};
String sortOrder = MediaStore.Images.Media.DATE_TAKEN + " DESC LIMIT 1";
Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, selection, selectionArgs, sortOrder);
if(cursor != null && cursor.moveToFirst()){
String imageId = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media._ID));
String imageName = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME));
// do something with the image id and name
}
if(cursor != null){
cursor.close();
}
private long getDateInMillis(String dateString){
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
Date date = null;
try {
date = formatter.parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
}
if(date != null){
return date.getTime();
}
return 0;
}
```
这段代码会查询外部存储中所有照片的ID、名称和拍摄时间,并筛选出拍摄时间在2023-05-01及以后的照片,然后按时间降序排列,最后只返回第一张符合条件的照片。您可以根据需要修改查询条件和返回结果。
阅读全文