Java 移动/复制捕获图像时出现问题phonegap android
Phonegap版本:3.3 安卓版本:4.0.4 我正在共享我得到的供参考的文件URI 文件\u URI=content://media/external/images/media/11679 文件\u URI=file:///mnt/sdcard/Android/data/com.allplugins/cache/1393913804418.jpg 我在将捕获的图像移动到SD卡时出错。我还尝试了Java 移动/复制捕获图像时出现问题phonegap android,java,android,cordova,cordova-3,Java,Android,Cordova,Cordova 3,Phonegap版本:3.3 安卓版本:4.0.4 我正在共享我得到的供参考的文件URI 文件\u URI=content://media/external/images/media/11679 文件\u URI=file:///mnt/sdcard/Android/data/com.allplugins/cache/1393913804418.jpg 我在将捕获的图像移动到SD卡时出错。我还尝试了window.resolveLocalFileSystemURL和window.resolveLo
window.resolveLocalFileSystemURL
和window.resolveLocalFileSystemURI
两种方法,但都不适用于我
当我尝试将相机拍摄的图像移动到sd卡时,我得到了错误代码“1”
错误日志
我的代码
确保您在清单文件中添加了读取和写入外部存储的适当权限。如果没有,请将以下代码添加到清单文件中
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
问题在于phonegap 3.3。
我已经用phonegap 3.4测试了我的代码,效果很好。您是否添加了用于文件操作的插件?是的,我添加了插件您可以检查FileUtils.java文件吗?根据您的日志,它在第583行抛出错误,您的demo.js:line no 384.phonegap 3.4.0今天发布。将尝试使用相同的代码。我不认为问题出在我的js代码上。有一些本土问题。因为我在IOS中也面临同样的问题。你可以试试最新的。我认为这个问题不是源于本机,而是因为cordovajar的配置。我们已经使用了这个功能,它工作得很好。
function PhotoKeeper() {
var name_of_image = "";
var pictureSource,destinationType;
var selectedSourceType;
var fileSysRoot,projectImageDirectory,projectImageDirectoryName = "temp";
init();
function init(){
destinationType = window.Camera.DestinationType;
pictureSource = window.Camera.PictureSourceType;
window.requestFileSystem(
LocalFileSystem.PERSISTENT,
0,
// got file system sucess callback
function (arg_o_filesys){
fileSysRoot = arg_o_filesys.root;
arg_o_filesys.root.getDirectory(
projectImageDirectoryName,
{
create: true,
exclusive: false
},
// got directory entry sucess callback
function(arg_o_directoryEntry) {
console.log("Info : got directory entry !");
projectImageDirectory = arg_o_directoryEntry;
},
errorPhoto
);
},
errorPhoto
);
}
function getPhotoFromLibreary(){
selectedSourceType = pictureSource.PHOTOLIBRARY;
window.navigator.camera.getPicture(
gotPhoto,
errorPhoto,
{
"quality": 50,
"destinationType": destinationType.FILE_URI,
"sourceType": selectedSourceType
}
);
}
function getPhotoFromCamera(){
selectedSourceType = pictureSource.CAMERA;
window.navigator.camera.getPicture(
gotPhoto,
errorPhoto,
{
"quality": 50,
"destinationType": destinationType.FILE_URI,
"sourceType": selectedSourceType
}
);
}
function gotPhoto(fileuri){
window.resolveLocalFileSystemURL(fileuri, gotFileEntry, errorPhoto);
}
// got fileEntry sucess callback
function gotFileEntry(arg_o_fileEntry){
console.log("Info : got file entry !"+arg_o_fileEntry);
arg_o_fileEntry.copyTo( projectImageDirectory, name_of_image , function(){ console.log("Info : file moved !") } , function(e){ console.log("Error : file move !"+e); } );
}
function errorPhoto(msg){
console.log("Error : "+JSON.stringify(msg));
}
function updateName (argname_of_image) {
if((utils.isUndefined(argname_of_image) === false) && (typeof argname_of_image == "string")){
name_of_image = argname_of_image;
}else{
name_of_image = Date.now().toString();
}
}
return{
getPhotoFromLibreary : function (name_of_image) {
updateName(name_of_image);
getPhotoFromLibreary();
},
getPhotoFromCamera : function (name_of_image) {
updateName(name_of_image);
getPhotoFromCamera();
}
}
}
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />