2012-01-18 49 views
5

imágenes en la tarjeta SD de acceso

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); 
    } 

he utilizado el código anterior para acceder a los datos en la tarjeta SD. Pero ahora lo que tengo que hacer es obtener la ruta de las imágenes presentes allí y ponerla en un objeto diff que pueda acceder a la ruta y mostrar esas imágenes. No tengo ni idea de cómo hacerlo. Se agradece cualquier ayuda.

+0

u necesita la ruta de la imagen que el usuario selecciona, o las rutas a todas las imágenes? – ghostCoder

+0

no está claro lo que desea lograr. pls edita y hazlo un poco más claro. un ejemplo de caso de uso sería bueno. – ghostCoder

+0

Necesito crear un objeto que contenga la ruta a todas las imágenes en la tarjeta sd. es decir, necesito poder acceder a todas las imágenes de la tarjeta sd a través de otro objeto que tendrá la ruta de la imagen y debería poder abrir todas las imágenes. – Khush

Respuesta

2

Lo que puedes hacer es escribir un plugin de teléfono para la plataforma en la que estás desarrollando. Asumiré que es Android. Writing android plugins.
Cuando se llama a la Phonegap.exec llamar el plugin, el plug-in, tiene la trayectoria de la tarjeta SD a través

Environment.getExternalStorageDirectory().getAbsolutePath() 

y luego hace una búsqueda básica para obtener toda la .jpg y .png y devolver una json de todas las rutas de los archivos.

+0

esta podría ser una de las opciones. Pero estoy buscando en este momento es ¿Puedo obtener una lista de imágenes presentes en la tarjeta SD? Quiero que el mismo código funcione para Android y iOS. – Khush

+0

tendrá que escribir complementos separados para iphone n android para este trabajo. puede obtener fácilmente la lista de imágenes de la manera que describí. – ghostCoder

+0

¿No tengo otra opción para hacer una galería separada de las imágenes de la tarjeta SD y mostrarlas? – Khush

Cuestiones relacionadas