我正在使用PhoneGap相机 API 拍照。拍照后会显示在我的页面中。它可以工作,但图片保存在应用程序缓存文件夹中,
/mnt/sdcard/Android/data/mypackage.com/cache.
相反,我想将它们保存在我的 SD 卡中的文件夹中/mnt/sdcard/myFolder,或者类似的东西。我经历了很多问答,但我找不到我想要的方式。
这是我的源代码。
  <html>
     <div data-role="page" id="camera_page" data-theme="a">
        <div data-role="header"><h1>Camera-page</h1></div>
        <div data-role="content" class="ui-content">
        <div data-role="fieldcontain">
        <button onclick="capturePhotoWithData();" data-theme="a">Capture Photo</button> <br>
            <img style="display:none;width:60px;height:60px;" id="smallImage" src="" />
            <img style="display:none;" id="largeImage" src="" />
        </div>
    </div>
    <div data-role="footer" data-position="fixed">footer</div>
</div>
</html>
//here is my  java script
  <script type="text/javascript">
  var pictureSource;   // picture source
  var destinationType; // sets the format of returned value 
  // 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;
}
// Called when a photo is successfully retrieved
//
function onPhotoDataSuccess(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;
}
// Called when a photo is successfully retrieved
//
function onPhotoFileSuccess(imageData) {
  // Get image handle
  console.log(JSON.stringify(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 = imageData;
}
// Called when a photo is successfully retrieved
//
function onPhotoURISuccess(imageURI) {
  // Uncomment to view the image file URI 
  // console.log(imageURI);
  // Get image handle
  //
  var largeImage = document.getElementById('largeImage');
  // Unhide image elements
  //
  largeImage.style.display = 'block';
  // Show the captured photo
  // The inline CSS rules are used to resize the image
  //
  largeImage.src = imageURI;
}
// A button will call this function
//
function capturePhotoWithData() {
  // Take picture using device camera and retrieve image as base64-encoded string
  navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50 });
}
function capturePhotoWithFile() {
    navigator.camera.getPicture(onPhotoFileSuccess, onFail, { quality: 50, destinationType: Camera.DestinationType.FILE_URI });
}
// A button will call this function
//
function getPhoto(source) {
  // Retrieve image file location from specified source
  navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50, 
    destinationType: destinationType.FILE_URI,
    sourceType: source });
}
// Called if something bad happens.
// 
function onFail(message) {
  alert("you didn't take any pictures");
}