MediaStore: удаляет все идентичные песни из плейлиста
Когда у меня есть 2 песни с одинаковым audioID в списке воспроизведения, и я хочу удалить только 1 из этих 2 песен, что мне следует изменить на этот код?
static public int removeSongFromPlaylist(Context ctx, long playlist_id, long song_id) {
ContentResolver resolver = ctx.getContentResolver();
Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlist_id);
int res = resolver.delete(uri, MediaStore.Audio.Playlists.Members.AUDIO_ID+" = "+song_id, null);
reloadPlaylistList(ctx);
return res;
}
Потому что это удаляет ВСЕ песни с audioID, заданным из параметров.
Я думал о том, чтобы проверить, сколько песен было удалено, и если их больше 1, я просто добавляю их снова. Но это испортило бы порядок списка воспроизведения, и я думаю, что это не очень эффективно.
1 ответ
Решение
delete(Uri url, String where, String[] selectionArgs)
Uri uri = ...
String where = "song_id=? LIMIT 1";
String[] args = new String{song_id};
сейчас resolver(uri, where, args);