【问题标题】:Java Android getContentResolver().query for specific Camera folder to get cursor in Android API level <= 28 devicesJava Android getContentResolver().query for specific Camera 文件夹以在 Android API 级别 <= 28 个设备中获取光标
【发布时间】:2020-02-06 14:50:27
【问题描述】:

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

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

但我不想查询名称中包含“相机”字符序列的文件夹。我只想查询相机默认保存文件夹。在我的情况下是 /storage/emulated/0/DCIM/Camera。

【问题讨论】:

  • 试试new String[] {"%/Camera/%"}
  • 非常感谢。有用。但是还有其他方法可以获取相机默认保存目录吗? @blackapps
  • 您的问题不清楚。您的代码没有获取目录,而是获取目录中的文件。
  • 对不起。但是我想问一下如何获取Camera默认保存目录?在我的例子中,相机默认保存目录的路径是 /storage/emulated/0/DCIM/Camera @blackapps
  • 所有设备都具有相同的路径吗? @blackapps

标签: java android mediastore android-9.0-pie


【解决方案1】:

我可以使用查询特定目录

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");

【讨论】:

    猜你喜欢
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    相关资源
    最近更新 更多