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);

Другие вопросы по тегам