获取其中包含歌曲的流派名称列表

2023-12-23

我正在使用 CursorLoder 类从 android 的媒体内容提供程序获取流派列表。 下面是我的光标查询来获取流派列表。

 public Loader<Cursor> onCreateLoader(int id, Bundle args) {
        // currently filtering.
        Uri baseUri;
        baseUri = MediaStore.Audio.Genres.EXTERNAL_CONTENT_URI;
        String[] STAR = { "*" };
        return new CursorLoader(getActivity(), baseUri, STAR, null, null, null );
    }

现在,我从媒体内容提供商处获得了所有流派列表,但我获得的数据存在问题。我还得到了之前创建的流派名称,但现在我没有歌曲。

我只想要其中包含歌曲的流派,而不是其中没有歌曲的流派名称。

有人能帮我吗?

UPDATE

我可以使用下面的代码获取所有流派及其歌曲...

private void getGenresList() {

        //-------------------------------------

        int index;
        long genreId;
        int count;
        Uri uri;
        Cursor genrecursor;
        Cursor tempcursor;
        String[] proj1 = {MediaStore.Audio.Genres.NAME, MediaStore.Audio.Genres._ID};   
        String[] proj2={MediaStore.Audio.Media.DISPLAY_NAME};

         genrecursor=getActivity().getContentResolver().query(MediaStore.Audio.Genres.EXTERNAL_CONTENT_URI,proj1,null, null, null);
         if(genrecursor.moveToFirst())
         {
             do{
                index = genrecursor.getColumnIndexOrThrow(MediaStore.Audio.Genres.NAME);            
                System.out.println("GENRE NAME: "+genrecursor.getString(index));
                System.out.println("======================================");

                index = genrecursor.getColumnIndexOrThrow(MediaStore.Audio.Genres._ID);             
                genreId=Long.parseLong(genrecursor.getString(index));
                uri = MediaStore.Audio.Genres.Members.getContentUri("external", genreId);

                tempcursor = getActivity().getContentResolver().query(uri, proj2, null,null,null);
                System.out.println("Total Songs: "+tempcursor.getCount());
                if(tempcursor.moveToFirst())
                {
                    do{
                        index=tempcursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME);
                        System.out.println("    Song Name: "+tempcursor.getString(index));

                    }while(tempcursor.moveToNext());
                }
                System.out.println("======================================");
             }while(genrecursor.moveToNext());       
         }


        //-------------------------------------

    }

但是,我必须使用两个查询,一个用于获取所有流派,第二个用于过滤包含歌曲的流派的数据。即使我想在 CursorLoader 中使用它,所以我想知道如何做到这一点。

希望您对这个问题有正确的了解我想要什么。


似乎没有其他方法可以实现这一点,所以我只能像下面这样做...... 通过以下更新,我可以获得仅包含歌曲的流派列表。没有歌曲的流派列表将被过滤掉。

public Loader<Cursor> onCreateLoader(int id, Bundle args) {

        Uri baseUri;
        if (mCurFilter != null) {
            baseUri = Uri.withAppendedPath(
                    MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                    Uri.encode(mCurFilter));
        } else {
            baseUri = MediaStore.Audio.Genres.EXTERNAL_CONTENT_URI;
        }

        String[] STAR = { MediaStore.Audio.Genres._ID,
                MediaStore.Audio.Genres.NAME };


        String query = " _id in (select genre_id from audio_genres_map where audio_id in (select _id from audio_meta where is_music != 0))" ;

        return new CursorLoader(getActivity(),
                MediaStore.Audio.Genres.EXTERNAL_CONTENT_URI, STAR, query,
                null, null);

    }

在上面的代码中,我将流派表与音频表连接起来。通过这种方式,我可以获取,无论该流派是否有歌曲。所以现在我只有那种有歌曲的流派。

希望这对其他人也有帮助。

享受编码的乐趣...:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取其中包含歌曲的流派名称列表 的相关文章

  • 如何用Android做交互动画(翻译)

    我在 Android 中有一些 png 序列 我需要将它们的 x 和 y 位置从屏幕顶部到底部的翻译动画化 当动画发生时 我需要对象来接收单击事件 我知道这在 3 0 之前的 Android 版本中效果不太好 因为display对象的位置与
  • Phonegap(应用程序错误...发生网络错误)

    我已经使用phonegap 创建了一个版本 在index html 文件中 我编写了一个简单的iframe 用于加载网站 当我从phonegap获取本地url时它就起作用了 但如果我将整个构建作为 zip 文件上传到 PhoneGap 中
  • 不使用eclipse安装Android模拟器

    如何在没有eclipse的电脑上安装android模拟器 android模拟器无需安装eclipse 只需下载 android sdk 并安装即可 安装android SDK之前必须先安装JDK 完成后安装成功 您将获得两个应用程序 SDK
  • 如何连接到Google Play服务并加载排行榜

    我想将我的游戏与 Google Play 服务连接 我已阅读有关 Android 开发人员的文档 并尝试遵循输入数字示例 但仍然无法加载排行榜 我有导入baseGameUtils 但我使用andengine 所以我没有使用来自谷歌的exte
  • 新安装的Eclipse和Android SDK。无法让模拟器工作。挂在时钟屏幕上

    我对开发是全新的 我已经安装了 Eclipse 和 Andoid SDK 但是 我无法让模拟器工作 我已经尝试过示例记事本代码和 Hello Android 教程代码 每次我尝试运行任一应用程序时 它都会挂在时钟屏幕上 屏幕上还显示正在充电
  • 将清除会话标志设置为 FALSE 后,我丢失了已发布的值

    有人有一个合乎逻辑的解释为什么尽管我有clear session flage false当我未连接到经纪商时 我没有收到我订阅的更新的已发布消息 将 aore提到的标志设置为 false 后 我运行了我的应用程序 并且我不断向主题发布一些值
  • Android 在 Windowmanager 中调整视图大小

    这是我的代码 menubuttonClosed li inflate R layout menu button null menubutton ImageButton menubuttonClosed findViewById R id m
  • MediaPlayer.create() 始终返回 null

    我以前用过媒体播放器 从来没有遇到过这个问题 每当我尝试使用 MediaPlayer create 时 该方法都会给我 null 并且我无法播放声音 我有什么遗漏的吗 public class Game extends Activity p
  • 使用 START_STICKY 启动时服务进程被终止后的 onStartCommand

    我一直在阅读 Android 文档 我想知道是否有人可以阐明当以 START STICKY 启动的服务的进程被终止时服务实例会发生什么情况 我假设本地状态数据 实例变量 也丢失了 Android 在重新创建服务时是否会采取任何措施来帮助重新
  • 如何防止应用程序被盗(针对Android应用程序)?

    我想知道防止人们窃取我的应用程序的最有效方法是什么 在线下载 apk 的副本而不是购买它 我已经花了一个lot特别是 Droidbox 上的时间 并且不会发布 Sync 直到我可以保证提供专业版本的非法副本的人无法发布 有人实施过这个吗 我
  • 使用 twitter API 1.1 在 Android 应用程序中显示 twitter feed

    基本上我想展示这个提要 https en twitter com epl live https en twitter com epl live在我的应用程序中 由于 twitter 更改了其 api 1 1 每个调用都必须经过授权 我发现的
  • DialogFragment 关闭事件

    我需要处理 DialogFragment 的结尾 在调用 dismiss 之后 例如 我会在关闭后 包含 片段的活动内显示一个 toast 我该如何处理该事件 覆盖onDismiss 在你的DialogFragment中 或者使用setOn
  • android - 如何让按钮每次按下时单击播放声音文件?

    我打开了一个新项目 现在我想做的是 通过按下按钮 我想要播放一个 mp3 文件 而且每次按下按钮时 声音文件都会再次从头开始播放 所以假设 mp3 长 10 秒 我按下按钮 它正在播放 4 秒后我再次按下按钮 声音将再次播放 现在我想知道的
  • 活动中列表视图中的粘滞行

    我的列表视图中只有一行应该是粘性的 而不是粘性标题中带有字母的部分或部分 我真的很感激任何关于列表视图在活动中粘性一行而不是片段的帮助 我该怎么做 我真的很感谢任何帮助 提前致谢 使用如下代码 class MyAsyncTask exten
  • JavaScript 点击事件在 Android 4.0.4 默认浏览器上的 Samsung Galaxy SIII 上不起作用

    我在 Android 4 0 4 上使用 Samsung Galaxy SIII 的默认浏览器时遇到了最奇怪的问题 对于以下页面 单击链接将不会触发 JavaScript 处理程序 从其中一个 div 的内容中删除单个 a 字母使它们再次工
  • 在 VideoView 开始播放之前,TextView 不会显示

    我编写了一个android应用程序 它有两个视图 TextView上方的VideoView 位于ScrollView内部 我遇到了一个问题 直到VideoView开始播放视频 TextView才显示 并且我有一个黑屏 这可能需要很长一段时间
  • FCM 主题是否适合更多用户?

    我对使用主题消息有点困惑 我的场景是根据通知触发一些作业 请帮助我更多地了解这一点 如果我们正在处理大量用户 则可以使用 FCM 主题向用户发送通知 我们可以只使用数据消息和主题消息吗 使用主题发送的消息是否保证送达 我在 FCM 文档中看
  • 在两个片段之间拖放视图

    我目前正在尝试在两个片段之间实现拖放 我已经将它们添加到我的活动中 如下所示 FragmentManager fm getFragmentManager FragmentTransaction ft fm beginTransaction
  • Retrofit 2.0:预期为 BEGIN_OBJECT,但在第 1 行第 1 列路径 $ [重复] 处为 STRING

    这个问题在这里已经有答案了 我在邮递员上传递了更新用户请求并获得了成功的响应 参见图片 现在当我尝试使用 Retrofit 2 在我的应用程序中执行相同操作时 出现错误 com google gson JsonSyntaxException
  • android.view.WindowLeaked - 使用对话框和新意图时

    我已经尝试了 stackoverflow 上提供的所有可能的解决方案 但我仍然在 logcat 中遇到此错误 活动 com xyz MainActivity 泄露了最初在此处添加的窗口 com android internal policy

随机推荐

  • 在 MySql TIME 列中保存 LocalTime

    背景故事 我最近在保存时遇到了一个问题LocalTime to a TIMEMySQL 数据库中的列 节省价值9 00正在引起8 00保存在数据库中 这个问题没有出现在我的开发环境 Windows 上 但出现在我们尝试的两台 Linux 机
  • Scala 初始化行为

    请看下面的代码 trait MyTrait val myVal String class MyClass extends MyTrait val myVal Value class MyClass2 val myVal String ext
  • Cassandra 错误消息:由于本地暂停未将节点标记为关闭。为什么?

    我有 6 个节点 1 个 Solr 5 个 Spark 节点 使用 datastax 我的集群位于与 Amazon EC2 类似的服务器上 具有 EBS 卷 每个节点有3个EBS卷 使用LVM组成逻辑数据盘 在我的 OPS 中心 同一节点经
  • Python 文件吸食

    Python 中是否有一个单行代码可以读取文件的所有行 而不是标准的 f open x txt cts f read f close 看来这种事经常发生 所以必须有一句俏皮话 有任何想法吗 This will slurp the conte
  • 如何在 Windows 7 上查找 MAC 地址? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我可以使用命令找到我的机器的MAC地址ipconfig all在命令提示符下 网络上到处都说物理地址是MAC地址 这是命令的结果ipcon
  • CKEditor5 和 Angular2 - 在编辑器内单击以获取数据时获取插入符的准确位置

    在 Angular 2 中 当我单击某个对象内部时 我试图获取板条箱的确切位置CKEditor5 Balloon Editor实例 我将在页面上有几个实例 每个实例都通过 ViewChildren and a QueryList 每个实例都
  • Rust 中的不可变变量和 const 变量有什么区别?

    我了解到 如果变量没有使用显式声明为可变的mut 它变得不可变 声明后不能更改 那为什么我们有constRust 中的关键字 它们不是一样的吗 如果不是 它们有何不同 const 在 Rust 中是缩写constant并且与编译时评估 它显
  • 关闭 fancybox iframe 后 Chrome 中的后退按钮无法正常工作

    不久前我在 fancybox github 上发布了同样的问题 但当时问题无法解决 所以我想我可以在这里再试一次 在 Chrome 中 我打开 fancybox iframe 然后使用 iframe 页面上的链接进行导航 然后关闭 fanc
  • Scala REPL 中的嵌套环境

    是否有可能创建 enter Scala REPL 中的嵌套环境 这样之后exiting嵌套环境中 在退出环境中创建的所有变量绑定都会丢失 这就是我的wish会话可能如下所示 scala gt val x 1 x Int 1 scala gt
  • 自定义字体为 Android 中的某些字母组合提供了不正确的字形

    我在我的 Android 项目中使用自定义字体 由于某种原因 当文本包含字母时IJ一起 它给了我以下字形 这似乎是位于 uE2C5字体的 PUA 区域 个人I and J字形都存在于字体中 如果我将文本设置为 我可以让它们出现I J 它不是
  • 访问 Angular2 模板中的特定数组元素

    我有一个可以循环使用的数组ng for句法 然而 最终我只想访问该数组的一个元素 我不知道该怎么做 在我的组件脚本中我有 export class TableComponent elements IElement 在我的模板中 我可以通过循
  • 以编程方式原生 Android VPN

    这个问题存在变体 但我似乎无法理解某些东西 如果您阅读了功能末尾的内容工业控制系统 4 0 http developer android com about versions android 4 0 highlights html 其中提到
  • 如何跟踪迭代开始日期后已添加到冲刺中的 Azure 工作项?

    Folks 首先 这个问题基于这样的前提 我通过分析视图连接 Azure DevOps 数据 并且所有可用字段都已选择到视图中 我想跟踪开发团队是否坚持计划或处理已创建的积压项目或在冲刺开始后已添加到冲刺中的项目 但我不知道该怎么做 显然
  • 列出 Debian 中所有用户安装的软件包

    在我参加的一次网络安全竞赛中 我获得了一台安装了许多软件包的 Debian 虚拟机 并要求我清理无关或恶意的软件包 过去我用过dpkg l grep searchterm 以及执行此任务的常用包的列表 然而 这是极其低效且耗时的 为了加快我
  • Spring FactoryBean 和作用域一起工作

    我想一起使用 FactoryBeans 和作用域 具体来说 我希望将 FactoryBean 创建和返回的对象放置到指定的 可能是自定义的 范围中 问题在于执行以下操作
  • 如何更改 Winforms 按钮上第二行文本的字体大小和颜色?

    this Controls Add button button Font new Font Arial 8 button Name btn idDanych button Width 100 button Height 100 button
  • 奇怪的文件查找行为

    对于下面的两次交互 我希望两者输出相同的文件 但第二个交互写入文件末尾 唯一的区别是写入后的读取语句 我不明白发生了什么 我缺少什么 预期行为 gt gt gt f open test txt w gt gt gt f write 0123
  • Java API核心类的maven-javadoc-plugin和inheritDoc

    我正在编写自己的 Java 8 Stream 实现 并希望继承原始版本的 Javadocsjava util stream Stream界面 但是我无法让它工作 生成的 Javadoc 仅显示我的文档 但不显示扩展 Stream 接口的文档
  • 正则表达式:在一段文本中查找BB代码

    我正在尝试匹配随机文本中的 url BB 代码标记 示例文本 Lorem ipsum dolor sat amet consectetur adipiscing elit 网址 http www google com url http ww
  • 获取其中包含歌曲的流派名称列表

    我正在使用 CursorLoder 类从 android 的媒体内容提供程序获取流派列表 下面是我的光标查询来获取流派列表 public Loader