Как обновить жанр в медиасторе? - PullRequest
6 голосов
/ 12 апреля 2019

Я пытаюсь обновить тег жанра аудиофайла.

КОД

final Uri genreUri = MediaStore.Audio.Genres.EXTERNAL_CONTENT_URI;

String currentGenreName = MediaStore.Audio.Genres.NAME;

ContentValues values2 = new ContentValues();
values2.put(currentGenreName, genre);

String whereGenre = MediaStore.Audio.Genres._ID + "=?";
String[] whereVal2 = {Long.toString(genreID)};
resolver.update(genreUri, values2, whereGenre, whereVal2);
  • жанр :значение из edittext (имя нового жанра).
  • genreID : genreID из выбранного аудиофайла.

Я не получаю никаких ошибок, но жанр не показываетне обновляются в таблице жанров MediaStore.

Обновлены другие теги, такие как название, исполнитель, альбом и обложка, только жанр не работает.

Я также не могу найти информацию оОбновляя название жанра в аудиофайле, мне удалось сделать это только с помощью тегов выше.

EDIT

CODE Я использую для редактирования названия, исполнителя, названия альбомаи теги года, и это прекрасно работает, поэтому я решил, что мне нужно сделать то же самое для названия жанра, потому что у меня есть идентификатор жанра.

final Uri musicUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;


ContentResolver resolver = c.getContentResolver();

String currentTitle     = MediaStore.Audio.Media.TITLE;
String currentArtist    = MediaStore.Audio.Media.ARTIST;
String currentAlbumID   = MediaStore.Audio.Media.ALBUM_ID;
String currentAlbum     = MediaStore.Audio.Media.ALBUM;
String currentGenreID   = MediaStore.Audio.Genres._ID;
String currentGenreName = MediaStore.Audio.Genres.NAME;
String currentAlbumData = MediaStore.Audio.Media.DATA;
String currentYear      = MediaStore.Audio.Media.YEAR;

ContentValues values = new ContentValues();
values.put(currentTitle, title);
values.put(currentArtist, artist);
values.put(currentAlbum, album);
values.put(currentYear, year);

//Update song info.
String where = MediaStore.Audio.Media._ID + "=?";
String[] whereVal = {Long.toString(songID)};
resolver.update(musicUri, values, where, whereVal);

Есть ли причины, по которым он не обновляется?

...