Доступ к изображениям на SD-карте - PullRequest
5 голосов
/ 18 января 2012

    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-карте.Но теперь мне нужно получить путь к имеющимся там изображениям и поместить его в объект сравнения, который может получить доступ к пути и отобразить эти изображения.Я понятия не имею, как это сделать.Любая помощь приветствуется.

1 Ответ

2 голосов
/ 18 января 2012

Что вы можете сделать, это написать плагин для телефонной щели для платформы, для которой вы разрабатываете. Я предполагаю, что это Android. Написание плагинов для Android.
Когда вы вызываете Phonegap.exec для вызова плагина, он получает путь к SD-карте через

Environment.getExternalStorageDirectory().getAbsolutePath()

, а затем выполняет базовый поиск, чтобы получить все файлы .jpg и .png и вернуть json всех путей к файлам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...