'Error capturing image' 使用 Phonegap Android

'Error capturing image' with Phonegap on Android

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

我在 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 Build 中使用 Phonegap 3.7。

好的,现在我知道答案了。问题是 saveToPhotoAlbum: true 选项。 Android 不认识这个。当我删除此选项时,一切正常。

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

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

检查您的 cordova-camera-plugin 版本。 如果它低于 4.0.1,这将通过更新最新版本来解决。 不然我就不知道了。

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

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

从Android8开始,在相册中保存照片需要WRITE_EXTERNAL_STORAGE权限,但是cordova-camera-plugin4.0.2之前的版本不需要。

更多信息:

权限要求在不同版本Android和不同SDK版本中发生了变化。确保您使用的插件版本适合您的目标 OS 版本。

对于 cordova-camera-plugin <=4.2.0 在 Android 10 上看到同样问题的任何人,您可以设置 <preference name="android-targetSdkVersion" value="28" />

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