Android 5.0是否更改了ACTION_IMAGE_CAPTURE意图的结果?

时间:2015-08-07 18:46:16

标签: android android-intent android-camera-intent

Intent captureImageIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(captureImageIntent, TAKE_FIRST_IMAGE_REQUEST_CODE);

在onActivityResult(int requestCode,int resultCode,Intent data)

String mediaKey = "data";
case TAKE_FIRST_IMAGE_REQUEST_CODE:
   mImageUri1 = data.getData();

   if (mImageUri1 != null) {
       mImageBitmap1 =  (Bitmap) data.getExtras().get(mediaKey);
                    postCaptureImg1();
   } else {
       LOGD(TAG, "mImageUri1 == null");
   }
break;

该代码适用于Android版本< 5.0。但是,在5.0上,它不再有效,mImageUri1始终为null。

Android 5.0中是否有任何变化导致此问题?

1 个答案:

答案 0 :(得分:0)

  

该代码适用于Android版本< 5.0

不,它没有。 发生在您的有限测试中工作,因为您使用的特定相机应用发生以返回Uri(可能是您通过{{1}提供的值})。但是,the documentation for ACTION_IMAGE_CAPTURE中没有任何内容需要相机应用返回EXTRA_OUTPUT。有数百甚至数千个相机应用程序,包括预安装和从Play商店等公共渠道安装的应用程序。不要依赖于Uri中的Uri

  

Android 5.0中是否有任何变化导致此问题?

您使用的相机应用程序可能已更改为不再在结果中打包onActivityResult()。根据记录的协议,这是完全合法的。