android - 使用 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
请帮助我弄清楚如何获取包含和不包含排除文件夹的文件夹的结果。
解决方案
推荐阅读
- laravel - 错误打开流失败:上传视频时权限被拒绝
- android - Textview水平和垂直滚动
- node.js - MongoDB 官方 Docker 映像初始化脚本未运行
- python - 熊猫:merge_asof 方法。用 NaN 代替零保持插值
- android - 如何保护 API Key 和 AppID 被中间拦截?
- java - 我想为我的 android 应用创建一个多用户登录
- microsoft-cognitive - QnAMaker Update API 如何知道要更新哪一个?
- arangodb - 有效消除旧文档
- flutter - 如何省略第二个条件
- javascript - 尝试从数组调用返回字符串时出错