Java Android getContentResolver()。查询特定相机文件夹以在 Android API 级别 <= 28 设备中获取光标

Java Android getContentResolver().query for specific Camera folder to get cursor in Android API level <= 28 devices

我想从相机文件夹中获取最后拍摄的图像。我不想得到最后的截图或其他任何东西。我只想拍摄相机文件夹的最后一张照片。

此代码有效,但如果存在名为 "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");