首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >某些文件的Android MediaStore查询MediaStore.MediaColumns.TITLE列为空

某些文件的Android MediaStore查询MediaStore.MediaColumns.TITLE列为空
EN

Stack Overflow用户
提问于 2016-05-05 18:41:42
回答 1查看 736关注 0票数 12

我正在查询安卓的MediaStore文件数据库- -MediaStore.Files.getContentUri("external") --对于某些特定的文件夹,MediaStore.MediaColumns.TITLEMediaStore.MediaColumns.DISPLAY_NAME都是空的,而对于其他文件夹,这个值是存在的。我找不到任何关于MediaStore.MediaColumns.TITLE可能为空的文档。

少数内部Android目录会发生这种情况,例如:

代码语言:javascript
复制
_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

但是,对于其他一些文件夹,标题在那里:

代码语言:javascript
复制
 _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查询。

我知道我可以直接处理数据,但我试图根据标题对查询进行排序,这会导致不正确的结果,因为有些结果是空的。

这是一种预期的行为吗?如何处理它并检索所有按标题正确排序的文件?

EN

回答 1

Stack Overflow用户

发布于 2016-05-16 21:07:14

看起来这是android的一个限制。您可以始终尝试按如下方式进行排序:

代码语言:javascript
复制
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上引入

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37048460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档