使用 ngCordova 从 android 库复制文件时权限被拒绝
Permission Denial when copy file from android gallery with ngCordova
我正在使用 ionicframework 和 ngCordova FileTransfer 插件从 android 图库复制图像。
我正在尝试以下方法
$scope.getImage = function()
{
var options = {
quality: 50,
destinationType: Camera.DestinationType.FILE_URI,
sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
saveToPhotoAlbum: false
};
$cordovaCamera.getPicture(options).then(
function(fileUri)
{
console.log(fileUri);
$cordovaFileTransfer.download(fileUri, cordova.file.dataDirectory + 'my-image.jpg', {}, true).then(
function(fileEntry)
{
$scope.images.imageUri = fileEntry.nativeURL;
},
function (error)
{
console.log(error);
}
);
},
function(error)
{
console.log(error);
}
);
}
在上面的代码中,errocallback 是调用并且控制台显示错误消息:
"Permission Denial: reading com.android.providers.media.MediaDocumentsProvider uri content://com.android.providers.media.documents/document/image%253A19753 from pid=3933, uid=10194 requires android.permission.MANAGE_DOCUMENTS, or grantUriPermission()"
$cordovaFileTransfer
不是为 copy/move 文件设计的。它用于下载和上传功能。
您必须将 $cordovaFile
与方法 copyFile(path, file, newPath, newFile)
一起使用。
在使用 $cordovaFile
之前,您必须使用以下命令安装其插件:cordova plugin add org.apache.cordova.file
更多信息请访问 ngCordova - $cordovaFile
希望对您有所帮助!
我正在使用 ionicframework 和 ngCordova FileTransfer 插件从 android 图库复制图像。
我正在尝试以下方法
$scope.getImage = function()
{
var options = {
quality: 50,
destinationType: Camera.DestinationType.FILE_URI,
sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
saveToPhotoAlbum: false
};
$cordovaCamera.getPicture(options).then(
function(fileUri)
{
console.log(fileUri);
$cordovaFileTransfer.download(fileUri, cordova.file.dataDirectory + 'my-image.jpg', {}, true).then(
function(fileEntry)
{
$scope.images.imageUri = fileEntry.nativeURL;
},
function (error)
{
console.log(error);
}
);
},
function(error)
{
console.log(error);
}
);
}
在上面的代码中,errocallback 是调用并且控制台显示错误消息:
"Permission Denial: reading com.android.providers.media.MediaDocumentsProvider uri content://com.android.providers.media.documents/document/image%253A19753 from pid=3933, uid=10194 requires android.permission.MANAGE_DOCUMENTS, or grantUriPermission()"
$cordovaFileTransfer
不是为 copy/move 文件设计的。它用于下载和上传功能。
您必须将 $cordovaFile
与方法 copyFile(path, file, newPath, newFile)
一起使用。
在使用 $cordovaFile
之前,您必须使用以下命令安装其插件:cordova plugin add org.apache.cordova.file
更多信息请访问 ngCordova - $cordovaFile
希望对您有所帮助!