dwb*_*ito 12 android sql-order-by mediastore android-cursor
我正在对Android的MediaStore文件数据库查询- - MediaStore.Files.getContentUri("external"),对于某些特定的文件夹,无论是MediaStore.MediaColumns.TITLE和MediaStore.MediaColumns.DISPLAY_NAME是零,而其他文件夹,这个值存在.我找不到任何关于MediaStore.MediaColumns.TITLE可能为null的文档.
对于一些内部Android目录会发生这种情况,例如:
_data: /storage/emulated/0/Music, title: null, _display_name: null
_data: /storage/emulated/0/Notifications, title: null, _display_name: null
_data: /storage/emulated/0/Pictures, title: null, _display_name: null
Run Code Online (Sandbox Code Playgroud)
但是,对于其他一些文件夹,标题是:
_data: /storage/emulated/0/Android, title: Android, _display_name: null
_data: /storage/emulated/0/DCIM, title: DCIM, _display_name: null
_data: /storage/emulated/0/Download, title: Download, _display_name: null
Run Code Online (Sandbox Code Playgroud)
所有数据都直接来自MediaStore查询.
我知道我可以直接使用数据但我正在尝试根据TITLE对查询进行排序,这会导致错误的结果,因为有些是null.
这是预期的行为吗?如何处理它并检索按标题正确排序的所有文件?
小智 1
看来这是安卓的限制。您始终可以尝试通过以下方式进行订购:
select substr(
substr(substr(MediaStore.MediaColumns.DATA, instr(MediaStore.MediaColumns.DATA, '/') + 1), instr(substr(MediaStore.MediaColumns.DATA, instr(MediaStore.MediaColumns.DATA, '/') + 1), '/') + 1),
instr(substr(substr(MediaStore.MediaColumns.DATA, instr(MediaStore.MediaColumns.DATA, '/') + 1), instr(substr(MediaStore.MediaColumns.DATA, instr(MediaStore.MediaColumns.DATA, '/') + 1), '/') + 1), '/') + 1
) from tablename;
Run Code Online (Sandbox Code Playgroud)
请注意,这不是递归的,但仅适用于最多 3 个“/”。
这可以递归完成,但后来才在 Android 上引入
| 归档时间: |
|
| 查看次数: |
568 次 |
| 最近记录: |