在我的应用程序中,我的一个活动有一个菜单选项,可以打开图库意图并允许用户选择图像。在onActivityResult内部,我调用MediaStore.Images.Thumbnails.getThumbnail来检索所选图像的缩略图版本。但是,由于某些原因,它返回null。我已经设置了动态用户权限,可以对外部存储进行读/写访问,我认为它是有效的(否则,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
发布于 2019-10-25 12:07:35
我通过将getThumbnail方法移到另一个方法(OnActivityResult之外)来解决我的问题。我的假设是,在用户选择图像之后,getThumbnail立即被阻止访问数据(因此只返回null)。
https://stackoverflow.com/questions/58460272
复制相似问题