如何解决按文件扩展名或文件类型过滤托管查询,以获取Android游标
我认为您要做的就是更改%mp3%
为%mp3
。这将强制“ mp3”位于文件名的末尾。
如果您需要选择多种文件类型,请按照以下步骤操作:
managedQuery(
Audio.Media.EXTERNAL_CONTENT_URI,
myProjection,
Audio.Media.DATA + " like ? OR " + Audio.Media.DATA + " like ? ",
new String[] {"%mp3","%wav"},
MediaStore.Audio.Media.TITLE + " ASC" );
解决方法
我想使用Android SDK进行ManagedQuery,其中返回的结果由其各自的文件 扩展名
(例如,不一定是名称)过滤。我已经做了很多研究,很累,希望社区能够为我提供帮助。那应该很简单,但找不到解决方案。
从本质上讲,我想做的是:
managedQuery(Audio.Media.EXTERNAL_CONTENT_URI,myProjection,Audio.Media.DATA + " like ? ",new String[] {"%mp3%"},null );
除标题外,如果标题为“ mymp3.wav”之类,则此查询仍将返回它,因为“
mp3”在名称中,但这不是我想要的->我希望它完全基于文件进行过滤扩展名(或者,如果可以的话,也可以选择文件类型(例如,即使文件的内容实际上是mp3,即使将mp3的文件扩展名更改为.wav,也可以用于我的目的))
。解决方案应指明一种过滤多种扩展名/文件类型的方法(例如,如果我希望查询返回所有.mp3文件以及.wav文件,但不返回.amr文件)。
此外,虽然有您,但我想按字母顺序对结果进行排序。我已经尝试过类似的东西:
managedQuery(Audio.Media.EXTERNAL_CONTENT_URI,null,MediaStore.Audio.Media.TITLE + " ASC" );
但是,这并不能过滤 全部
结果…也就是说,返回的列表是按mp3标题排序的,然后最后,它将.wav文件追加到列表中,这些文件也按字母顺序排序但无论文件类型如何,我都希望整个列表按字母顺序排列。
我知道这里有人可以轻松回答->预先感谢!!!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。