I am developing a simple audio player in android. I want to list the album's in the device.
I tried this code
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);
But this code is listing the all the song's in the device.
What is the structure of the Android Media store DB.
Any one please help.
You should query the Albums like this
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);
http://developer.android.com/reference/android/provider/MediaStore.Audio.Albums.html
Artists, Playlists and Genres can all be queried in a similar way using the correct EXTERNAL_CONTENT_URI and the corresponding projection.
Hope that helps...