专栏" album_id"在MediaStore.Audio.Artists.Albums中不存在

时间:2016-02-19 08:29:18

标签: android android-sqlite

我想查询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设备上测试了上面的代码

2 个答案:

答案 0 :(得分:1)

我尝试使用&#34; _id&#34;用于获取相应专辑封面的列,似乎它实际上是一个album_id列。因此,对于具有相同问题的其他人,您必须在查询时使用&#34; _id&#34; 作为列名,而不是使用具有值&#的MediaStore.Audio.Artists.Albums.ALBUM_ID列。 34; album_id&#34 ;.

答案 1 :(得分:0)

你卸载了你的应用程序吗?并重新安装您的应用

当我使用greenDA并更改了我的数据库时,我有类似的错误