将.putExtra()添加到Intent会返回代码:-1

时间:2017-11-03 17:22:13

标签: android android-intent android-activity kotlin android-camera

我有一个处理CAMERA_PHOTO_REQUEST案例的onActivityResult,它一直有效,直到我向Intent添加“.putExtra”参数。

使用:

val cameraPhotoIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
startActivityForResult(cameraPhotoIntent, PermissionHandler.REQUEST_TAKE_PHOTO)

不起作用:

val cameraPhotoIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
cameraPhotoIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI)
startActivityForResult(cameraPhotoIntent, PermissionHandler.REQUEST_TAKE_PHOTO)

onActivityResult:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)

    when (requestCode) {
        PermissionHandler.REQUEST_TAKE_PHOTO ->
            if (resultCode == RESULT_OK && data != null) { //result code becomes -1 and data = null after I change to the new semantics
                val extras = data.extras
                val imageBitmap = extras.get("data") as Bitmap
                profile_image.setImageBitmap(imageBitmap)
                galleryAddPic()
            }
    }
}

我的计划是使用.putExtra()参数更改galleryAddPic(),因为超过22的API需要更晚。 当我添加.putExtra时,图像确实保存到手机中,但由于它给我一个-1结果代码,它不会触发onActivityResult块,因此不会设置个人资料图片。

编辑:onActivityResult使用正确的请求代码捕获意图,但结果代码为-1,数据为空。 就像结果捕获器捕获.putExtra部分被捕获而不是实际意图...

Ty需要时间来帮助像这样的星期五。

0 个答案:

没有答案