在拍摄照片后在onActivityResult中获取图像Uri?

我有这个代码:

startActivityForResult(new Intent(MediaStore.ACTION_IMAGE_CAPTURE), CAMERA_IMAGE); 

这允许用户拍照。 现在,我将如何获得onActivityResult中的这张照片的Uri ? 这是一个Intent额外? 它是通过Intent.getData()吗?

Solutions Collecting From Web of "在拍摄照片后在onActivityResult中获取图像Uri?"

 protected void onActivityResult(int requestCode, int resultCode, Intent intent){ Uri u = intent.getData(); } 

顺便说一下…在某些设备上有这个意图的错误。 看看这个答案知道如何解决它。

而不是只是启动意图,还要确保告诉你想要的照片的意图。

 Uri uri = Uri.parse("file://somewhere_that_you_choose"); Intent photoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); photoIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri); startActivityForResult(photoIntent, CAMERA_IMAGE); 

然后,当你调用onActivityResult()方法时,如果是成功的,只需要打开一个URI的stream,它应该被设置。

 Uri uri = null; if(requestCode == GALLERY_INTENT && resultCode == RESULT_OK){ uri = data.getData(); }