В моем приложении одно из моих занятий имеет пункты меню, которые открывают намерения галереи и позволяют пользователю выбрать изображение. Внутри onActivityResult я вызываю MediaStore.Images.Thumbnails.getThumbnail, чтобы получить уменьшенную версию выбранного изображения. Однако по какой-то причине он возвращает ноль. У меня динамическое пользовательское разрешение, настроенное для доступа на чтение / запись к внешнему хранилищу, и я думаю, что оно работает (в противном случае Android выдаст исключение безопасности). Вот выдержка из моего кода:
override fun onActivityResult(requestCode: Int, resultCode: Int, responseData: Intent?) {
when (requestCode) {
MENU_PICK_IMAGE -> if (resultCode == Activity.RESULT_OK) {
responseData?.let{ data ->
val contentUri = data.data as Uri
val uriPath = contentUri.pathSegments
val imageId = uriPath.get(uriPath.size-1)
val b = MediaStore.Images.Thumbnails.getThumbnail(contentResolver,imageId.toLong(),MediaStore.Images.Thumbnails.MINI_KIND,null)
........
}
}
}
Целевой SDK: 28 compileSdkVersion 28