在android中列出相册

Joh*_*ohn 8 albumart mediastore android-mediaplayer

我正在开发一个简单的Android音频播放器.我想在设备中列出相册.

我试过这段代码

String where = new String();
where = MediaStore.Audio.Media.IS_MUSIC + "=1";
private Cursor managedCursor;
managedCursor = managedQuery(
        MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
        new String[] {  
            MediaStore.Audio.Media.TITLE,
            MediaStore.Audio.Media._ID,
            MediaStore.Audio.Media.ALBUM,       
            MediaStore.Audio.Media.ALBUM_ID,    
            MediaStore.Audio.Media.ARTIST,
            MediaStore.Audio.Media.ARTIST_ID
        },
        where,                                  
        null,                                       
        MediaStore.Audio.Media.DEFAULT_SORT_ORDER   
    );

  ListAdapter adapter = new AlbumListAdapter(
        this,                                   
        R.layout.albumlist_item,                
        managedCursor,                          
        new String[] {                          
            MediaStore.Audio.Media.ALBUM,       
            MediaStore.Audio.Media.ARTIST           
        },
        new int[] {                             
            R.id.text_album, 
            R.id.text_artist 
        }
    );
    setListAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

但是这段代码列出了设备中的所有歌曲.

Android Media Store DB的结构是什么.

任何人请帮忙.

Jef*_*ffG 7

您应该像这样查询相册

String[] projection = new String[] { Albums._ID, Albums.ALBUM, Albums.ARTIST, Albums.ALBUM_ART, Albums.NUMBER_OF_SONGS };
String selection = null;
String[] selectionArgs = null;
String sortOrder = Media.ALBUM + " ASC";
Cursor cursor = contentResolver.query(Albums.EXTERNAL_CONTENT_URI, projection, selection, selectionArgs, sortOrder);
Run Code Online (Sandbox Code Playgroud)

http://developer.android.com/reference/android/provider/MediaStore.Audio.Albums.html

使用正确的EXTERNAL_CONTENT_URI和相应的投影,可以以类似的方式查询艺术家,播放列表和流派.

希望有帮助......