MediaStore.Images.Thumbnails.getThumbnail returns 空

MediaStore.Images.Thumbnails.getThumbnail returns null

在我的应用程序中,我的一个活动有一个菜单选项,可以打开图库意图并允许用户选择图像。在 onActivityResult 中,我调用 MediaStore.Images.Thumbnails.getThumbnail 来检索所选图像的缩略图版本。但是,由于某种原因,它 returns 为空。我为 read/write 访问外部存储设置了动态用户权限,我认为它正在工作(否则,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

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