使用 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

希望对您有所帮助!