我正在查询安卓的MediaStore文件数据库- -MediaStore.Files.getContentUri("external") --对于某些特定的文件夹,MediaStore.MediaColumns.TITLE和MediaStore.MediaColumns.DISPLAY_NAME都是空的,而对于其他文件夹,这个值是存在的。我找不到任何关于MediaStore.MediaColumns.TITLE可能为空的文档。
少数内部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但是,对于其他一些文件夹,标题在那里:
_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所有数据都直接来自MediaStore查询。
我知道我可以直接处理数据,但我试图根据标题对查询进行排序,这会导致不正确的结果,因为有些结果是空的。
这是一种预期的行为吗?如何处理它并检索所有按标题正确排序的文件?
发布于 2016-05-16 21:07:14
看起来这是android的一个限制。您可以始终尝试按如下方式进行排序:
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;请注意,这不是递归的,但只适用于最多3 '/‘。
这可以递归地完成,但后来才在Android上引入
https://stackoverflow.com/questions/37048460
复制相似问题