Библиотека выбора фотографий Android не открывает галерею на Android 11 и 12.
Я реализовал библиотеку выбора фотографий Android, как описано в документации , но на устройствах Android под управлением Android 11 и 12 (API 30 и 31) библиотека автоматически вызывает действие намерения ACTION_OPEN_DOCUMENT, а не галерею.
Код:
private lateinit var pickMultipleMediaLauncher: ActivityResultLauncher<PickVisualMediaRequest>
Регистрирует средство запуска действий средства выбора фотографий в режиме множественного выбора.
private fun registerPhotoPicker() {
pickMultipleMediaLauncher =
registerForActivityResult(PickMultipleVisualMedia(imageSelectionLimitCount)) { uris ->
uris.forEach {
getRealPathFromMediaURI(it)?.let { imagePath -> imagesPath.add(imagePath) }
}
}
}
Запустите средство выбора фотографий
pickMultipleMediaLauncher.launch(PickVisualMediaRequest.Builder().build())
Получите реальный путь из URI мультимедиа.
fun getRealPathFromMediaURI(uri: Uri): String? {
val projection = arrayOf(MediaStore.MediaColumns.DATA)
val cursor = context.contentResolver.query(uri, projection, null, null, null)
val columnIndex = cursor?.getColumnIndex(MediaStore.MediaColumns.DATA)
return try {
if (cursor != null) {
cursor.moveToFirst()
val filePath = columnIndex?.let { cursor.getString(it) }
cursor.close()
filePath
} else null
} catch (exception: Exception) {
null
}
}