使用ngCordova从Android库复制文件时权限拒绝

时间:2015-11-05 15:52:05

标签: android ionic-framework ngcordova

我使用ionicframework和ngCordova FileTransfer插件从android gallery中复制图像。

我尝试以下

$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是调用,控制台显示错误消息:

"权限拒绝:阅读com.android.providers.media.MediaDocumentsProvider uri内容://com.android.providers.media.documents/document/image%253A19753来自pid = 3933,uid = 10194需要android .permission.MANAGE_DOCUMENTS或grantUriPermission()"

1 个答案:

答案 0 :(得分:0)

$cordovaFileTransfer不适用于复制/移动文件。它用于下载和上传功能。

您必须使用方法$cordovaFile copyFile(path, file, newPath, newFile)

在使用$cordovaFile之前,您必须使用以下命令安装其插件:cordova plugin add org.apache.cordova.file

ngCordova - $cordovaFile

的更多信息

希望它能帮助你!