0

我正在使用 phonegap 2.2 (cordova-2.2.0.js) 开发一个应用程序。我正在尝试捕捉图像。当我按下上传按钮时,相机打开,我拍照,然后出现一个带有两个选项的屏幕,丢弃和保存。如果我单击保存,应用程序将返回到我的原始屏幕,并且我收到错误错误压缩图像。

我使用了 phonegap 文档中的代码:

http://docs.phonegap.com/en/2.2.0/cordova_camera_camera.md.html#cameraOptions

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
alert("device ready");

function onSuccess(imageData) {
    var image = document.getElementById('myImage');
    image.src = "data:image/jpeg;base64," + imageData;
}

function onFail(message) {
    alert('Failed because: ' + message);
}
var options = {
        quality : 100,
        destinationType : Camera.DestinationType.DATA_URL,
        sourceType : Camera.PictureSourceType.CAMERA, 
        encodingType: Camera.EncodingType.JPEG,
        saveToPhotoAlbum: true

}
$("#takePicture").click(function(){
    navigator.camera.getPicture(onSuccess, onFail, options); 

})

}

我尝试设置 destinationType 的选项:Camera.DestinationType.FILE_URI,

并且错误更改为Error capture image并且 logcat 显示

12-11 12:23:13.965: W/System.err(2419): java.io.FileNotFoundException: /mnt/sdcard/Android/data/ro.iss.my.package/cache/.Pic.jpg: 打开失败: ENOENT(没有这样的文件或目录)

在第一种情况下,logcat 没有显示任何错误。

12-11 12:27:13.990: D/DroidGap(3618): Paused the application!
12-11 12:27:13.990: D/CordovaWebView(3618): Handle the pause
12-11 12:27:14.930: W/IInputConnectionWrapper(3618): showStatusIcon on inactive InputConnection
12-11 12:27:22.105: I/System.out(3618): Not a DRM File, opening notmally
12-11 12:27:22.160: D/dalvikvm(3618): GC_EXPLICIT freed 7823K, 38% free 13168K/21191K, paused 3ms+2ms
12-11 12:27:22.160: W/CursorWrapperInner(3618): Cursor finalized without prior close()
12-11 12:27:22.160: D/DroidGap(3618): Resuming the App
12-11 12:27:22.195: W/CursorWrapperInner(3618): Cursor finalized without prior close()
12-11 12:27:22.195: W/CursorWrapperInner(3618): Cursor finalized without prior close()

我正在两台设备上的 android 4.0.3 上对此进行测试。

任何帮助将不胜感激。

4

1 回答 1

0

您的权限列表中缺少 WRITE_EXTERNAL_STORAGE。没有它,应用程序将无法写入 jpg 文件。

于 2012-12-12T16:05:08.080 回答