Phonegap:Android KitKat中相机无法工作

5

我正在开发一款Android相机应用程序。我使用Cordova插件添加相机功能。

config.xml

 <feature name="Camera">
    <param name="android-package" value="org.apache.cordova.camera.CameraLauncher" />
</feature>

拍照代码

 function snapPicture () {
    navigator.camera.getPicture (onSuccess, onFail, 
        { quality: 100,  
          sourceType: navigator.camera.PictureSourceType.CAMERA,
          mediaType: navigator.camera.MediaType.PICTURE,
          destinationType: destinationType.FILE_URI,
          encodingType: navigator.camera.EncodingType.JPEG,
          correctOrientation: false,
          saveToPhotoAlbum: true
         });


    //A callback function when snapping picture is success.
    function onSuccess (imageData) {
        var image = document.getElementById ('picture');
        alert("path : "+imageData);
        image.src =  imageData;
    }

    //A callback function when snapping picture is fail.
    function onFail (message) {
        alert ('Error occured: ' + message);
    }
}

代码在除了Android Kitkat版本以外的所有Android版本中都可以正常运行。在Kitkat中,我得到的响应是“捕获图像错误”。请问有人知道Kitkat中的问题是什么吗?提前感谢您!

你使用的是哪个Cordova版本?在终端输入cordova -v来检查它,并且请提供你项目中Cordova Android的版本。要检查它,请在项目目录中运行cordova platform version - Sithys
@Sithys 我正在使用 Cordova 4.2.0 版本,尝试在 KitKat 4.4.4 上运行。 - user4928488
@Sithys,你说更新Cordova可以解决这个问题。 - user4928488
@Sithys 我正在使用 Cordova 4.2.0,平台是 Android 3.6.4。 - user4928488
你尝试在GapDebug中获取日志/错误/警告了吗?我明白你的问题,稍等一下。 - Sithys
显示剩余5条评论
1个回答

0

你的代码里有一个错误。 destinationType: destinationType.FILE_URI, 是行不通的。请将这一行改为 destinationType: Camera.DestinationType.FILE_URI,,它就能正常运行了。以下是完整可用的代码:

function snapPicture() {
        navigator.camera.getPicture(onSuccess, onFail, { quality: 100,
             sourceType: navigator.camera.PictureSourceType.CAMERA,
             mediaType: navigator.camera.MediaType.PICTURE,
             destinationType: Camera.DestinationType.FILE_URI,
             encodingType: navigator.camera.EncodingType.JPEG,
             correctOrientation: false,
             saveToPhotoAlbum: true
             })


             //A callback function when snapping picture is success.
             function onSuccess (imageData) {
                 var image = document.getElementById ('picture');
                 alert("path : "+imageData);
                 image.src =  imageData;
             }

             //A callback function when snapping picture is fail.
             function onFail (message) {
                 alert ('Error occured: ' + message);
             }
    }

我建议您使用GapDebug来调试您的应用程序。


1
我尝试了这段代码,但仍然出现“捕获图像错误”的错误。这个错误只在Android Kitkat中出现。 - user4928488
你尝试使用我提到的GapDebug了吗? - Sithys

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接