Android:MediaStore缺少艺术家和专辑

问题描述:

我目前正在处理的项目需要应用程序发现Android设备上的所有音轨。除了曲目之外,它还必须能够按专辑和艺术家进行分组。Android:MediaStore缺少艺术家和专辑

我找到了MediaStore内容提供程序并设置了有关创建数据库帮助程序实用程序类以快速返回曲目,专辑和艺术家的ID。我已经能够查询媒体商店,它返回一些结果,但似乎并非所有的音频信息都存储在那里。

例如,查询所有艺术家只返回9个结果,但Android的音乐播放器应用程序返回27

我使用下面的代码来查询艺人:

ContentResolver resolver = getContentResolver(); 
String[] projection = new String[]{MediaStore.Audio.ArtistColumns.ARTIST}; 
Uri uri = android.provider.MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI; 

Cursor c = null; 

    try { 
     c = resolver.query(uri, projection, null, null, null); 
    } 
    catch (UnsupportedOperationException e) { 
     Log.e("DatabaseHelper", "query: " + e); 
     c = null; 
    } 

    if(c != null) { 
     while(c.isAfterLast() == false) { 
      Log.e("ARTIST", "NAME: " + cursor.getString(0)); 
      cursor.moveToNext(); 
     } 
    } 

它似乎如果Media Scanner(在设备启动时运行definatley)没有检测到我的音频库。难道我做错了什么?

我只是试图快速有效地找到所有的音轨,音频专辑和音频艺术家。如果MediaStore不能帮助我,我恐怕我将不得不实施某种形式的文件扫描仪来遍历目录结构并构建我自己的数据库,但我不想这么做;)

任何想法都会很多赞赏。

谢谢。

也许您应该查询android.provider.MediaStore.Audio.Albums.INTERNAL_CONTENT_URI以便让其余的媒体播放器可见。