I took an image using PhoneGap using camera.getPicture. Now I can not move / copy the captured image to the location of my choice. I tried using the PhoneGap File API, but could not succeed. Can someone please tell me what is wrong with the code below?
PS: I am running this application in Android Galaxy S2. The photo is saved in the gallery by default.
<script type="text/javascript" charset="utf-8"> 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; } function capturePhoto() { // Take picture using device camera and retrieve image as base64-encoded string navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50 }); } // A button will call this function // function capturePhotoEdit() { // Take picture using device camera, allow edit, and retrieve image as base64-encoded string navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 20, allowEdit: true }); } // A button will call this function // function getPhoto(source) { // Retrieve image file location from specified source navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50, destinationType: destinationType.FILE_URI, sourceType: source }); } function onPhotoDataSuccess(imageData) { // Uncomment to view the base64 encoded image data // console.log(imageData); // Get image handle // var smallImage = document.getElementById('smallImage'); // 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/sastphotos/"+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); } </script>
source share