phonegap 2.2 (cordova-2.2.0.js) を使用してアプリを開発しています。画像をキャプチャしようとしています。アップロードのボタンを押すと、カメラが開き、写真を撮ると、画面に破棄と保存の 2 つのオプションが表示されます。[保存] をクリックすると、アプリが元の画面に戻り、エラーError Compressing image が表示されます。
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()
これを 2 つのデバイスの Android 4.0.3 でテストしています。
どんな助けでも大歓迎です。