Переименование плейлиста из MediaStore

Я пытаюсь понять, как я могу переименовать свой плейлист из MediaStore.

Ниже у меня есть код для удаления определенного списка воспроизведения, передав ему указанный идентификатор списка воспроизведения.

В преобразователе контента есть метод resolver.delete, который упрощает задачу, но я, кажется, не понимаю, как я могу переименовать указанный список воспроизведения.

Что мне нужно сделать со следующим кодом, чтобы он переименовал указанный список воспроизведения.

    private void deletePlaylist(String playlistid) {
    // // Log.i(TAG, "deletePlaylist");

    ContentResolver resolver = getActivity().getContentResolver();
    String where = MediaStore.Audio.Playlists._ID + "=?";
    String[] whereVal = { playlistid };
    resolver.delete(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI, where,
            whereVal);

    return;
}

person Jack    schedule 03.03.2015    source источник
comment
Вы все еще работаете над этим? Вы пробовали метод обновления, то есть обновление (Uri uri, значения ContentValues, String where, String [] selectionArgs)   -  person The Original Android    schedule 07.03.2015
comment
Я еще не пробовал этот метод, не могли бы вы привести пример того, как его использовать на основе кода, который у меня есть выше? благодарю вас.   -  person Jack    schedule 07.03.2015
comment
У вас есть проблемы с resolver.delete? Я делаю, он удаляет файл m3u, но файл восстанавливается, когда я перезагружаю устройство Android. Я знаю, что это связано со Службой СМИ. Я хотел бы удалить навсегда!   -  person The Original Android    schedule 09.03.2015


Ответы (2)


Метод update ContentResolver должен работать. Для вашего удобства веб-страница Google по адресу Обновление ContentResolver.

Во всяком случае, вот мой предлагаемый код. Я еще не пробовал это, но я буду:

ContentValues values = new ContentValues(1);
values.put(MediaStore.Audio.Playlists.NAME, "NewPlaylist");

resolver.update(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI, 
   values, "_id=" + playlistid, null);

Обратите внимание, что NewPlaylist — это имя вашего обновленного списка, а playlistid — ваш существующий идентификатор. Однако вам, возможно, придется удалить существующий плейлист. Я вижу ошибки в существующих приложениях для Android (в маркете) по этому вопросу, раздражает. Мне нравится знать твой прогресс. Держите меня в курсе.

person The Original Android    schedule 07.03.2015
comment
Спасибо, это работает просто отлично. Я еще не нашел никаких проблем с этим, если я найду, я сообщу вам. В любом случае спасибо, сэр, приятного отдыха, где бы вы ни были! :) - person Jack; 08.03.2015
comment
Эй, это здорово. Я хочу сделать свое собственное приложение для воспроизведения, так как я устал использовать другие приложения, которые не работают должным образом, ошибки. Я буду считать тебя своим приятелем по плейлисту, ха-ха. - person The Original Android; 08.03.2015
comment
Не стесняйтесь обратиться ко мне. Я выпустил New Playlist Manager для Google и Amazon. (обратите внимание, что Google в настоящее время заблокировал мой последний выпуск из-за так называемых проблем с авторскими правами, но последняя версия доступна на Amazon. - person Theo; 09.03.2015
comment
@Theo, вы использовали изображения, защищенные авторским правом, на снимках экрана или на каких-либо значках, которые вы использовали в приложении? это может быть огромной проблемой - person Jack; 09.03.2015

На всякий случай, почти то же самое, что и «Оригинальный Android». Я не нашел никаких проблем с этим.

private final Uri uri = MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI;
public void renamePlaylist(Context context, String newplaylist, long playlist_id) {
    ContentResolver resolver = context.getContentResolver();
    ContentValues values = new ContentValues();
    String where = MediaStore.Audio.Playlists._ID + " =? ";
    String[] whereVal = { Long.toString(playlist_id) };
    values.put(MediaStore.Audio.Playlists.NAME, newplaylist);
    resolver.update(uri, values, where, whereVal);
}
person Theo    schedule 09.03.2015