Библиотека выбора фотографий 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
        }
    }

0 ответов

Другие вопросы по тегам