【问题标题】:'Error capturing image' with Phonegap on Android在 Android 上使用 Phonegap 拍摄图像时出错
【发布时间】:2015-04-01 13:52:27
【问题描述】:

我需要使用我的 Phonegap 应用程序拍摄图像。在 iOS 上一切正常,但在 Android 上(通过 Phonegap Build)它会抛出“错误捕获图像”错误。

我在 config.xml 中添加了以下几行,但这并没有改变任何内容:

<feature name="Camera">
    <param name="android-package" value="org.apache.cordova.camera.CameraLauncher" />
</feature>
<feature name="http://api.phonegap.com/1.0/device" />
<feature name="http://api.phonegap.com/1.0/camera" />
<feature name="http://api.phonegap.com/1.0/file" />
<feature name="http://api.phonegap.com/1.0/media" />
<feature name="http://api.phonegap.com/1.0/network" />

我的 API 调用如下所示:

    $(document).on('click', '#cameraPreview', function() {
        pictureSource = navigator.camera.PictureSourceType;
        destinationType = navigator.camera.DestinationType;

        navigator.camera.getPicture(onGetPictureSuccess, onGetPictureFail, {
          quality: 40,
          sourceType: Camera.PictureSourceType.CAMERA,
          destinationType: Camera.DestinationType.FILE_URI,
          allowEdit: true,
            encodingType: Camera.EncodingType.JPG,
          targetWidth: 1000,
          targetHeight: 1000,
          saveToPhotoAlbum: true,
          correctOrientation: 1
        });
    });

我将 Phonegap 3.7 与 Phonegap Build 一起使用。

【问题讨论】:

  • 请包含config.xml的标题行

标签: android cordova camera


【解决方案1】:

好的,现在我知道答案了。问题在于saveToPhotoAlbum: true 选项。 Android 无法识别这一点。当我删除此选项时,一切正常。

【讨论】:

  • 这是 Cordova 的已知问题吗?我正在从 Cordova 3.5.0 升级,在该版本中,它与 saveToPhotoAlbum 选项集一起正常工作。
  • 在我告诉客户它已修复之前。让我告诉你,我爱你。它工作了很长时间突然停止工作。谢谢
  • 我也爱你,@johnny。此选项适用于某些 Android 设备,但不适用于其他设备。这应该添加到插件的文档中。再次感谢
【解决方案2】:

检查您的 cordova-camera-plugin 版本。 如果它低于 4.0.1,这将通过更新最新版本来修复。 否则,我不知道。

这是一个已知问题,已经修复。 您可以在下面的链接中查看更多详细信息。 https://issues.apache.org/jira/browse/CB-13781

【讨论】:

    【解决方案3】:

    cordova-camera-plugin 更新到4.0.2 或更高版本应该可以解决保存到相册的问题。

    从 Android 8 开始,在相册中保存照片需要 WRITE_EXTERNAL_STORAGE 权限,但早于 4.0.2 的 cordova-camera-plugin 版本不要求这样做。

    更多信息:

    【讨论】:

      【解决方案4】:

      对我来说,我必须添加这个权限:

      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
      

      【讨论】:

        【解决方案5】:

        不同版本的Android和不同的SDK版本,权限要求有所变化。确保您使用适合目标操作系统版本的插件版本。

        对于在 Android 10 上看到与 cordova-camera-plugin <preference name="android-targetSdkVersion" value="28" />

        查看此票以获取更多信息:https://github.com/apache/cordova-plugin-camera/issues/611

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-10-10
          • 1970-01-01
          • 1970-01-01
          • 2020-03-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多