【问题标题】:Android Lollipop camera issueAndroid Lollipop 相机问题
【发布时间】:2015-05-21 00:25:14
【问题描述】:

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

以下是我的应用程序中用于使用本机摄像头的代码 sn-p:

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。此代码是否有任何替代解决方案。任何帮助将不胜感激。

【问题讨论】:

  • 请出示您的startActivityForResult()电话。
  • 我正在使用自定义操作表。请看下面的代码。意图 cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(cameraIntent, CAMERA_REQUEST);

标签: android bitmap android-5.0-lollipop


【解决方案1】:

您似乎在遵循文档,而且这里选择的相机应用似乎不是。

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

您的选择是:

  1. 切换到使用EXTRA_OUTPUT 为全尺寸图像指定Uri。在您的结果中,如果您没有data Bitmap,请尝试读取全尺寸图像,使用BitmapFactory.Options 将其缩小到更合适的尺寸。可能仍有一些支持ACTION_IMAGE_CAPTURE 的相机应用无法运行,但应该会减少此类损坏应用的数量。

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

【讨论】:

  • 感谢马克墨菲。会试试这个,让你知道。在为什么这个问题被否决之间。只是出于好奇而询问。
  • @prijin:“在为什么这个问题被否决之间。只是出于好奇而问”——我无法知道。
【解决方案2】:

我不得不在这个问题上不同意 CommonsWare。我将 android.hardware.Camera 与我的应用程序一起使用,并使用运行 Lollipop 的三星 Galaxy S4 进行测试。似乎问题在于在三星棒棒糖上运行应用程序时,在 onActivityResult 之前调用了 onCreate。

我的建议是将应用程序中的最大目标设置为 20(Android 4.4),直到三星解决此问题。这是三星的问题。

 android:maxSdkVersion="20"

【讨论】:

    猜你喜欢
    • 2015-10-04
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多