2012-12-11 53 views
0

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

我使用来自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,

和错误更改为错误捕获图像和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上测试这两个设备上。

任何帮助将不胜感激。

+0

你在AndroidManifest.xml中拥有什么权限? –

+0

<使用权限android:name =“android.permission.ACCESS_COARSE_LOCATION”/> <使用权限android:name =“android.permission。 ACCESS_COARSE_LOCATION“/> <使用权限android:name =”android.permission.ACCESS_FINE_LOCATION“/> <使用权限android:name =”android.permission.ACCESS_LOCATION_EXTRA_COMMANDS“/> <使用权限android:name =” android.permission.INTERNET“/> <使用权限android:name =”android.permission.ACCESS_NETWORK_STATE“/> –

回答

0

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