#android #android-contentprovider #mediastore #android-10.0 #android-11
#Android #android-contentprovider #mediastore #android-10.0 #android-11
Вопрос:
Я пытался обновить метаданные аудиофайла в хранилище мультимедиа Android.
Перед обновлением значения я устанавливаю MediaStore.Audio.Media.IS_PENDING
значение 1. В Android 10 это работает хорошо, но в Android11 обновление метаданных даже не выполняется IS_PENDING
.
Вот код, который я использую,
val contentValues = ContentValues()
if (hasQ()) {
contentValues.put(MediaStore.Audio.Media.IS_PENDING, 1)
application.contentResolver.update(uri, contentValues, null, null)
}
contentValues.clear()
if (hasQ()) contentValues.put(MediaStore.Audio.Media.IS_PENDING, 0)
with(editTrackTagInfo) {
title?.let { it -> contentValues.put(MediaStore.Audio.Media.TITLE, it) }
album?.let { it -> contentValues.put(MediaStore.Audio.Media.ALBUM, it) }
artist?.let { it -> contentValues.put(MediaStore.Audio.Media.ARTIST, it) }
}
val rowsUpdated = application.contentResolver.update(uri, contentValues,
null, null)
Для Android 11 rowsUpdated в основном равен 0. И несколько раз оно оказывается равным 1, но даже в этом случае метаданные не обновляются.