Как обновить метаданные аудиофайла в медиа-магазине Android R (Android 11)?

#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, но даже в этом случае метаданные не обновляются.