Android Lollipop相机问题

时间:2015-03-19 13:31:33

标签: android bitmap android-5.0-lollipop

我的Android应用程序在版本2.3到4.4的所有Android设备上运行良好。但是,当我将三星Galaxy S4更新为LOLLIPOP并测试了上述应用程序时,相机,地图等功能上存在一些错误。

以下是我的应用中使用本机相机的代码段:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   super.onActivityResult( requestCode,  resultCode,  data);
   if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK && null != data) 
   {    
      Bitmap camImg = (Bitmap) data.getExtras().get("data");
   }
}

这里我得到(Bitmap)data.getExtras()。get(" data")为null。这个代码有没有替代解决方案。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您似乎正在关注文档,看来这里选择的相机应用程序不是。

这是将此类工作委托给第三方应用程序的风险之一 - 第三方应用程序可能存在错误。

您的选择是:

  1. 切换为使用EXTRA_OUTPUT为全尺寸图片指定Uri。在您的搜索结果中,如果您没有data Bitmap,请尝试阅读全尺寸图片,然后使用BitmapFactory.Options将其下采样为更合适的尺寸。可能仍有一些相机应用程序会使ACTION_IMAGE_CAPTURE无法使用,但它应该会减少此类损坏应用的数量。

  2. 自行使用android.hardware.Cameraandroid.hardware.camera2 API,并避免依赖第三方应用。

答案 1 :(得分:0)

我不得不在这个问题上不同意CommonsWare。我在我的应用程序中使用android.hardware.Camera并使用运行Lollipop的三星Galaxy S4进行测试。似乎问题是在Samsung Lollipop上运行应用程序时,在onActivityResult之前调用onCreate。

我的建议是将应用中的最大目标设置为20(Android 4.4),直到三星对其进行排序。这是三星的问题。

 android:maxSdkVersion="20"