Android Inbuild(ActionImageCapture)intent返回null intent。无法传递结果{who=null}

Android Inbuild(ActionImageCapture)intent返回null intent。无法传递结果{who=null},android,nullpointerexception,android-intent,android-camera,Android,Nullpointerexception,Android Intent,Android Camera,我正在使用默认的照相机意图在我的应用程序中获取图像。问题是摄像头在onActivityResult()上返回空值。ResultCode和RequestCode按预期返回 我的意向是: private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 1224; .... Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaSt

我正在使用默认的照相机意图在我的应用程序中获取图像。问题是摄像头在
onActivityResult()上返回空值。
ResultCode
RequestCode
按预期返回

我的意向是:

private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 1224;
....
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
OnactivityResult是:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
    //use imageUri here to access the image
    Uri imageuri = data.getData(); // here is getting crash 
    imageView.setImageFromUri(imageUri);
}
}
}

void setImageFromUri(Uri imgUri){
 ... TODO assign image from uri
}
当我输入日志时,我得到的结果代码和响应代码不为空

resultCode = -1
requestCode = 1224
我哪里做错了

但是拍摄的照片存储在我指定的路径(imageUri)中


是否有其他方法可以使用照相机获取图像。

似乎在onActivityResult之前您就知道imageUri了。这不是正确的答案,但很好用

intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); 
//此图像uri仅适用于您将要使用的图像

所以不要使用

 Uri imageuri = data.getData();
只需使用您知道的uri

您的代码如下所示:

if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
  if (resultCode == RESULT_OK) {
//use imageUri here to access the image
imageView.setImageFromUri(imageUri); // imageUri should be global in the activity
  }
}

谢谢Shadowtech这就是我所做的。。。它正在工作。:)您知道为什么intent为null吗?如果删除intent.putExtra(MediaStore.EXTRA_输出,imageUri);然后您将在intent中获取图像,否则intent将为null,图像将存储在URI中。。。