【问题标题】:How to check is the MediaStore.Audio.Media.ARTIST field empty?如何检查 MediaStore.Audio.Media.ARTIST 字段是否为空?
【发布时间】:2012-07-27 22:08:19
【问题描述】:

我一直在开发一个 MediaPlayer 应用程序,我使用 MediaStore.Audio.Media 来获取 SD 卡上的所有歌曲及其标题、专辑、艺术家等标签。我有一个自定义适配器,我想检查艺术家字段是否为空,因此我可以为该字段设置“艺术家未知”。我认为我使用的适配器和光标与这个问题无关,所以我不会在这里粘贴任何代码,因为这个问题也发生在适配器之外。

问题是:当 mp3 歌曲没有艺术家标签时,艺术家字段(MediaStore.Audio.Media.ARTIST 字段)的光标会返回“”。我不知道那是哪种数据类型(它应该是字符串),因为每当我将它与值为“”的字符串进行比较时,比较结果都是错误的。即使我将该字段的返回值分配给临时字符串,并将其与前面提到的“”进行比较,我仍然得到错误。我什至尝试了null,“unknown”,“”,没有任何效果。 我真的遇到了死胡同,任何形式的帮助都将不胜感激。

提前谢谢你,伊万。

【问题讨论】:

    标签: mediastore


    【解决方案1】:

    我使用的是相同的字段 (MediaStore.Audio.Media.ARTIST),但我注意到的不同。 当您尝试检索歌曲的艺术家信息并且当前没有可用信息时,您得到的是<unknown> 字符串。

    我也想更改该信息,我只是去:

    String artist = (((cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)) == null) 
                                || cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)).equals("")
                                || cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)).equals("<unknown>")) ? 
                    "Artist Unknown" : cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)));
    

    null 和 equals.("")” 检查无论如何都应该没用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-28
      • 1970-01-01
      • 2012-02-21
      • 2011-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多