首页 > 解决方案 > 使用 Group By 查询 MediaStore 的特定文件夹并且没有工作

问题描述

我正在尝试以 2 种不同的方式查询 MediaStore。一种是显示不在排除列表中的文件夹中的所有图像。另一种是仅显示排除列表中的文件夹。我可以显示所有文件夹,但无法显示或不显示排除的文件夹。

这是第一个查询

Query{
uri=content://media/external/file
projection=[parent, bucket_display_name, count(*), _data, max(date_modified)]
selection='media_type=? or media_type=?) group by (parent) HAVING (_data NOT LIKE ? '
args=[1, 3, /storage/emulated/0/Test]
sortMode='bucket_display_name'
ascending='true'
limit='-1'}

这应该显示所有文件夹,但排除的文件夹除外。“_data 不喜欢 /storage/emulated/0/Test”

我也试过这样

Query{
uri=content://media/external/file
projection=[parent, bucket_display_name, count(*), _data, max(date_modified)]
selection='media_type=? or media_type=?) group by (parent) HAVING (_data != ? '
args=[1, 3, /storage/emulated/0/Test]
sortMode='bucket_display_name'
ascending='true'
limit='-1'}

使用 != 而不是不喜欢。

我也尝试过使用通配符

args=[1, 3, %/storage/emulated/0/Test%]

但如果我有一个 Test2 文件夹,它也会显示我不想要的。

然后我用来显示排除的唯一区别是改变!= 到 = 或不喜欢喜欢。

这是光标找到的文件夹列表

D/Folder: FolderCursor - path: /storage/emulated/0/Misc
          FolderCursor - name: Misc
          FolderCursor - id: 1902
          FolderCursor - count: 3
          FolderCursor - dm: -1
          Folder: Pictures id: 6
D/Folder: FolderCursor - path: /storage/emulated/0/Pictures
          FolderCursor - name: Pictures
          FolderCursor - id: 6
          FolderCursor - count: 1792
          FolderCursor - dm: 1523304236
          Folder: Test id: 1900
D/Folder: FolderCursor - path: /storage/emulated/0/Test
          FolderCursor - name: Test
          FolderCursor - id: 1900
          FolderCursor - count: 1
          FolderCursor - dm: -1
          Folder: test2 id: 1906
          FolderCursor - path: /storage/emulated/0/test2
D/Folder: FolderCursor - name: test2
          FolderCursor - id: 1906
          FolderCursor - count: 3
          FolderCursor - dm: -1

请帮助我弄清楚如何获取包含和不包含排除文件夹的文件夹的结果。

标签: androidsqlitemediastore

解决方案


推荐阅读