Я разрешаю пользователям моего плеера переименовывать названия треков в mp3-файлах. Для этого я использовал следующий блок:
ContentValues values = new ContentValues();
values.put(MediaStore.Audio.Media.TITLE, trackName);
trackResolver.update(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, values, MediaStore.Audio.Media._ID + "= ?", new String[] { String.valueOf(trackId) })
Это работает без проблем. Хотя это не работает на Android Q. Следующее работает на всех системах, которые я тестировал, включая Android Q:
Uri uri = ContentUris.withAppendedId(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, trackId);
ContentValues values = new ContentValues();
values.put(MediaStore.Audio.Media.TITLE, trackName);
trackResolver.update(uri, values, null, null)
В чем разница между обоими подходами? Могу ли я безопасно использовать второй подход со всеми системами?