我想查询MediaStore.Audio.Artists.Albums表以获取给定艺术家的专辑。我成功查询了MediaStore.Audio.Artists表中的所有艺术家姓名和艺术家ID,但我无法从MediaStore.Audio.Artists.Albums表中获取album_id。我收到了以下错误:
java.lang.IllegalArgumentException:column' album_id'不存在
然而专栏" album_id"应该按照documentation出现在MediaStore.Audio.Artists.Albums表中。我检查了MediaStore.Audio.Artists.Albums中的所有列,如下所示:
Uri artistAlbumsUri = MediaStore.Audio.Artists.Albums.getContentUri("external", artistId);
Cursor c = mContentResolver.query(artistAlbumsUri,null, null, null, null);
// print all column names
for(int i = 0; i < c.getColumnCount(); i++)
Log.d(TAG,"Column name:"+c.getColumnName(i));
日志输出如下:
列名:album_art
专栏名称:艺术家
专栏名称:minyear
专栏名称:专辑
列名:artist_key
列名:album_key
列名:_id
列名:numsongs_by_artist
专栏名称:艺术家
栏目名称:numsongs
列名:maxyear
请注意,艺术家专栏出现两次,而且有_id列而不是album_id。这是一个错误还是我错过了什么?
编辑:我在Android Marshmallow设备上测试了上面的代码
答案 0 :(得分:1)
我尝试使用&#34; _id&#34;用于获取相应专辑封面的列,似乎它实际上是一个album_id列。因此,对于具有相同问题的其他人,您必须在查询时使用&#34; _id&#34; 作为列名,而不是使用具有值&#的MediaStore.Audio.Artists.Albums.ALBUM_ID列。 34; album_id&#34 ;.
答案 1 :(得分:0)
你卸载了你的应用程序吗?并重新安装您的应用
当我使用greenDA并更改了我的数据库时,我有类似的错误