I am trying to fetch all the user defined playlists in the device. But I am getting only the default playlists. I tried creating 2 playlists but still I don't get any of my created playlists retrieved. Please help. I am pasting code to create playlist as well as retrieving. EDIT: Something wrong with creating playlist only. I am able to retrieve playlists created in other music app.
public void addToPlaylist(long playlistId, Context context,
List<Song> playlistTracks, String playlistName) {
int count = getPlaylistSize(playlistId, context);
Log.d("playlist size=", "" + count);
ContentValues[] values = new ContentValues[playlistTracks.size()];
for (int i = 0; i < playlistTracks.size(); i++) {
values[i] = new ContentValues();
values[i].put(MediaStore.Audio.Playlists.Members.PLAY_ORDER, i
+ count + 1);
values[i].put(MediaStore.Audio.Playlists.Members.AUDIO_ID,
playlistTracks.get(i).getAudioId());
values[i].put(MediaStore.Audio.Playlists.NAME, playlistName);
}
ContentResolver resolver = context.getContentResolver();
Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external",
playlistId);
int num = resolver.bulkInsert(uri, values);
Log.d("songs added=", "" + num); // added
resolver.notifyChange(Uri.parse("content://media"), null);
}
public void retrieveAllPlaylists(Context context) {
Uri tempPlaylistURI = MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI;
final String idKey = MediaStore.Audio.Playlists._ID;
final String nameKey = MediaStore.Audio.Playlists.NAME;
final String[] columns = { idKey, nameKey };
Cursor playListCursor = context.getContentResolver().query(
tempPlaylistURI, columns, null, null, null);
if (playListCursor != null) {
Log.d("playlist cursor count=", "" + playListCursor.getCount());
for (boolean hasItem = playListCursor.moveToFirst(); hasItem; hasItem = playListCursor
.moveToNext()) {
playlistName = playListCursor.getString(playListCursor
.getColumnIndex(nameKey));
// noOfTracks = playListCursor.getInt(playListCursor
// .getColumnIndex(tracksCountKey));
Log.d(this.getClass().getName(), "playlistname=" + playlistName // returns only default playliststhe
+ "tracks=" + noOfTracks);
playlistModel.add(new PlaylistModel(playlistName, noOfTracks));
}
}
}