如何更新媒体库中的流派?

Vin*_*nce 6 java android uri mediastore android-contentresolver

我正在尝试更新音频文件的流派标签。

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);
Run Code Online (Sandbox Code Playgroud)
  • genre:edittext(新流派名称)中的值。
  • genreID:所选音频文件中的genreID。

我没有收到任何错误,但是MediaStore流派表中的流派没有更新。

其他标签(如标题,艺术家,专辑和艺术品)已更新,仅流派无效。

我也找不到有关更新音频文件中流派名称的任何信息,我只能通过上面的标签来做到这一点。

编辑

我用于编辑标题,艺术家,专辑名称和年份标签的代码,效果很好,所以我认为我必须对类型名称进行相同的操作,因为我具有类型ID。

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);
Run Code Online (Sandbox Code Playgroud)

为什么不更新呢?