PhoneGap的getPicture()调用不会保存到Android手机上的图库

时间:2013-06-24 19:42:31

标签: android camera cordova save getpicture

我一直在尝试使用PhoneGap功能用我的Android手机拍照并将其保存到手机的图库中。我没有任何问题让他们的完整示例项目启动并运行,但代码永远不会保存图像。我们已经在Iphone上测试过没有任何问题,所以我想知道我做错了什么,或者这是另一个Android问题。

Phone Gap Example

以下是我根据我在网上看到的步骤。

添加到app / res / xml / config.xml文件
<plugin name="Camera" value="org.apache.cordova.CameraLauncher" />
添加到清单文件
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
更改getPicture()中的选项以包含“saveToPhotoAlbum”选项
navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50,
    destinationType: destinationType.DATA_URL, saveToPhotoAlbum: true });

我也尝试将目的地类型更改为 FILE_URI ,但仍然没有运气。该应用程序仍然可以显示捕获的图像,所以我知道它已经走得那么远,我只是不知道为什么它没有保存到图库。

1 个答案:

答案 0 :(得分:1)

我一直坚持同样的问题,但使用jquery mobile。我还复制了apache cordova相机插件的工作示例。我只是在他们提供的.js文件中注释了整个代码并粘贴了从堆栈溢出复制的以下代码。它工作得很好,但有一个问题,图像将保存在底部,有一些日期为1970年,但它被保存。代码如下。

$('#capturePhotoButton').on('click', function () {
    alert('capturePhotoButton click() called');
    cameraGetPicture();

            });

function cameraGetPicture() {
    navigator.camera.getPicture(imageReceived, cameraFail, {
        quality: 50,
        destinationType: Camera.DestinationType.FILE_URI,
        allowEdit: false,
        saveToPhotoAlbum: true,
        correctOrientation: true        

    });
}

function imageReceived(imageURI) {
    var image = document.querySelector('img#smallImage');
    image.src = imageURI;
    imageURI = new steroids.File({
        path: "image.png",
        relativeTo: steroids.app.userFilesPath

    });
}

function cameraFail(message) {
    alert("Camera error: " + message);
}