0

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 でテストしています。

どんな助けでも大歓迎です。

4

1 に答える 1

0

権限のリストにWRITE_EXTERNAL_STORAGEがありません。これがないと、アプリはjpgファイルを書き込むことができません。

于 2012-12-12T16:05:08.080 に答える