如何检查 MediaStore.Audio.Media.ARTIST 字段是否为空



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

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

提前谢谢你,伊万。

我使用相同的字段(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 and equals.(")"检查应该是无用的。

最新更新