Проблема
После редактирования видео в галерее Samsung и нажатия кнопки «Сохранить» (перезаписать):
• Видео не отображается на вкладке «Видео» любого средства выбора медиафайлов.
• Видео появляется в галерее в разделе «Коллекции > Камера».
• Внешние приложения не могут открыть файл.
• MediaStore показывает IS_PENDING=1 и никогда не сбрасывается.
Этапы воспроизведения
1. Откройте галерею Samsung
2. Выберите видео из фотопленки
3. Отредактируйте видео
4. Нажмите «Сохранить» (перезаписать)
5. Откройте стороннее приложение и попробуйте получить доступ к видео.
Результат:
• Видео отсутствует на вкладке «Видео».
• Видно в галерее, но не может быть открыто извне.
Код: Выделить всё
val projection = arrayOf(MediaStore.Video.Media.IS_PENDING)
val cursor = contentResolver.query(
MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
projection,
"${MediaStore.Video.Media._ID} = ?",
arrayOf(videoId.toString()),
null
)
cursor?.use {
val pendingCol = it.getColumnIndexOrThrow(MediaStore.Video.Media.IS_PENDING)
val isPending = it.getInt(pendingCol)
Log.d("MediaStore", "Video $videoId IS_PENDING: $isPending")
}
Дополнительный контекст
• Происходит на нескольких устройствах Samsung (Z Fold 3 и других)
• Android 13+ / One UI 5+
• «Сохранить как копию» работает правильно (доступен новый файл)
• Firebase Crashlytics указывает на сбои при доступе к таким видео
Вопросы
1. Когда и как IS_PENDING должен быть сброшен в 0 после сохранения?
2. Могут ли сторонние приложения получать доступ к медиафайлам, принадлежащим другому приложению, если IS_PENDING=1?
3. Это ожидаемое поведение или ошибка галереи Samsung?
Ищем разъяснения или возможные обходные пути.
Мобильная версия