MediaStore.Images.Thumbnails.getThumbnail返回null

问题描述 投票:0回答:1

在我的应用中,我的一项活动有一个菜单选项,该菜单选项打开图库意图并允许用户选择图像。在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:28compileSdkVersion 28

android kotlin thumbnails
1个回答
0
投票

我通过将getThumbnail方法移动到另一个方法(在OnActivityResult之外)解决了我的问题。我的假设是,在用户选择图像后,getThumbnail被阻止访问数据(因此仅返回null)。

© www.soinside.com 2019 - 2024. All rights reserved.