我想从相机文件夹中获取最后拍摄的图像。我不想得到最后的屏幕截图或其他任何东西。我只想拍摄相机文件夹的最后一张图像。
此代码有效,但如果有一个名为“Cameras”或“xxx..Camera..xxx”的文件夹,程序也会获取这些文件夹的数据。
cursor = MainActivity.this.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
null,
MediaStore.Images.Media.DATA + " like ? ",
new String[] {"%Camera%"},
MediaStore.Images.ImageColumns.DATE_TAKEN + " DESC");
但我不想查询名称包含“Camera”字符序列的文件夹。我只想查询相机默认保存文件夹。就我而言/storage/emulated/0/DCIM/Camera。
最佳答案
我可以使用
查询特定目录MediaStore.Images.Media.BUCKET_DISPLAY_NAME
现在我的代码像这样工作并且没有任何问题:
cursor = MainActivity.this.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
null,
MediaStore.Images.Media.BUCKET_DISPLAY_NAME + " = ? ",
new String[] {"Camera"},
MediaStore.Images.ImageColumns.DATE_TAKEN + " DESC");
关于Java Android getContentResolver().query 特定相机文件夹以获取 Android API 级别 <= 28 设备中的光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60097683/