访问SD卡中的图像

时间:2012-01-18 05:43:37

标签: javascript cordova

    var pictureSource;   // picture source
    var destinationType; // sets the format of returned value 
    var photoid=window.localStorage.getItem("photoid");
    var photoData=null;
    // Wait for PhoneGap to connect with the device
    //
    document.addEventListener("deviceready",onDeviceReady,false);

    // PhoneGap is ready to be used!
    //
    function onDeviceReady() {
        pictureSource=navigator.camera.PictureSourceType;
        destinationType=navigator.camera.DestinationType;

    }

    // A button will call this function
    //
    function getPhoto(source) {
        alert("Entered sd card");
        // Retrieve image file location from specified source
        navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50, 
                                    destinationType: destinationType.FILE_URI,
                                    sourceType: source });
    }

    function onPhotoDataSuccess(imageData) {
         console.log(imageData);

        // Get image handle
        var smallImage = document.getElementById('photos');

        // Unhide image elements
        //
        smallImage.style.display = 'block';

        // Show the captured photo
        // The inline CSS rules are used to resize the image
        //
        smallImage.src = "data:image/jpeg;base64," + imageData;
        alert(imageData);
        photoData = imageData;
        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
    }

    function gotFS(fileSystem) {
        fileSystem.root.getFile("/sdcard/external_sd/"+photoid+".jpg", null, gotFileEntry, fail);
    }

    function gotFileWriter(writer) {
        writer.onwrite = function(evt) {
            alert("write success");
        };
        writer.write(photoData);
    }

    function fail(error) {
        alert(error.code);
    }


    /*   function onPhotoURISuccess(imageURI) {
        // Uncomment to view the image file URI 
         console.log(imageURI);
        alert("photo captured");
        uploadPhoto(imageURI);
    } */

    /*  function getPhoto(source) {
        // Retrieve image file location from specified source
        navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50, 
                                    destinationType: destinationType,
                                    sourceType: source });
    } */

    // Called if something bad happens.
    // 
    function onFail(message) {
        alert('Failed because: ' + message);
    }

我使用上面的代码访问SD卡中的数据。但现在我需要做的是,获取存在的图像的路径并将其放入可以访问路径并显示这些图像的diff对象中。我不清楚如何去做。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

您可以为您正在开发的平台编写一个phonegap插件。我假设它是机器人。 Writing android plugins.
当你调用Phonegap.exec来调用插件时,插件会通过

获取SD卡路径
Environment.getExternalStorageDirectory().getAbsolutePath()

然后进行基本搜索以获取所有.jpg和.png文件并返回文件所有路径的json。