Java Android getContentResolver().query 特定相机文件夹以获取 Android API 级别 <= 28 设备中的光标

标签 java android mediastore android-9.0-pie

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

此代码有效,但如果有一个名为“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/

相关文章:

android - 如何获取 4.4 kitkat 上的铃声 URI

android - 如何通过Android应用程序设置铃声?

java - 为什么我无法在构造函数之外访问 JLabel?

java.io.EOFException Jackson 处理器

java - 开始 Android 编程 - 构建一个小测验

android - Fabric Crashlytics 卡在构建和运行上

android - 在 android 中使用 Web 服务和 Ksoap2 获取图像

java - 我在Windows中安装了Hadoop,但是当我运行hadoop示例失败时

android - "Error:(2) Error retrieving parent for item No resource found that matches the given name ' android :TextAppearance. Material.Widget.Button.Inverse'

java - Android 播放列表查询不准确...?