gpt4 book ai didi

android - 按文件扩展名(或文件类型)过滤 Android Cursor 的 managedQuery

转载 作者:太空宇宙 更新时间:2023-11-03 12:11:49 25 4
gpt4 key购买 nike

我想使用 Android SDK 执行 managedQuery,其中返回的结果按其各自的文件 扩展名 过滤(例如,不一定是名称)。我已经做了很多研究并且很累,希望社区能帮助我..我确定答案就在那里但是,代替阅读 SQL 书籍或其他任何东西,我只是想做点什么这应该很简单,但找不到解决方案。

我想做的基本上是这样的:

managedQuery(Audio.Media.EXTERNAL_CONTENT_URI, myProjection, Audio.Media.DATA + " like ? ", new String[] {"%mp3%"}, null );

除此之外,如果标题类似于“mymp3.wav”,此查询仍会返回它,因为名称中有“mp3”,但这不是我想要的 -> 我希望它纯粹过滤基于文件扩展名(或者,如果有办法的话,文件类型[例如,如果 mp3 的文件扩展名更改为 .wav,即使文件的内容实际上是 mp3,这也适用于我的目的,因为出色地])。该解决方案应指出一种过滤多个扩展名/文件类型的方法(例如,如果我希望查询返回所有 .mp3 文件以及 .wav 文件但不返回 .amr 文件)。

此外,虽然我有你,但我想按字母顺序对结果进行排序。我试过类似的东西:

managedQuery(Audio.Media.EXTERNAL_CONTENT_URI, myProjection, null, null, MediaStore.Audio.Media.TITLE + " ASC" );

但是,这不会过滤整个结果...也就是说,返回的列表按 mp3 标题排序,然后在最后追加列表中的 .wav 文件也按字母顺序排序,但我希望整个列表按字母顺序排列,而不管文件类型如何。

我知道这里有人可以轻松回答这个问题 -> 提前致谢!!!

最佳答案

我认为您所要做的就是将 %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 - 按文件扩展名(或文件类型)过滤 Android Cursor 的 managedQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7932791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com