Android Inbuild(ActionImageCapture) intent返回null intent .不能传



我使用默认的相机意图在我的应用程序中获取图像。问题是相机在onActivityResult()上返回null。ResultCodeRequestCode按预期返回

我的意图调用是:

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和responseCode不是空

resultCode = -1
requestCode = 1224

我在哪里做错了?

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

是否有其他方法来获取图像使用相机

似乎你知道imageUri之前onActivityResult。这不是正确答案,但可以正常工作。

intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); 

//这个图片只有你可以使用

所以不要用
 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
  }
}

最新更新