'在Android上使用Phonegap捕获图像时出错'

时间:2015-04-01 13:52:27

标签: android cordova camera

我需要使用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。

5 个答案:

答案 0 :(得分:18)

好的,现在我知道了答案。问题是saveToPhotoAlbum: true选项。 Android并没有意识到这一点。当我删除此选项时一切正常。

答案 1 :(得分:1)

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

从Android 8开始,将照片保存在相册中需要具有WRITE_EXTERNAL_STORAGE权限,但是版本低于4.0.2的cordova-camera-plugin版本不需要此权限。

有关更多信息:

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

在不同版本的Android和不同的SDK版本中,权限要求已更改。确保您为目标操作系统版本使用了合适的插件版本。

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

有关更多信息,请参见此票证:https://github.com/apache/cordova-plugin-camera/issues/611