Отказ в разрешении при копировании файла из галереи Android с помощью 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 является вызовом, и консоль показывает сообщение об ошибке:

«Отказ в разрешении: чтение com.android.providers.media.MediaDocumentsProvider uri content://com.android.providers.media.documents/document/image%253A19753 из pid=3933, uid=10194 требует android.permission.MANAGE_DOCUMENTS или ГрантУриПермиссион()"


person Jonas Rodrigues    schedule 05.11.2015    source источник


Ответы (1)


$cordovaFileTransfer не предназначен для копирования/перемещения файла. Он используется для функций загрузки и выгрузки.

Вместо этого вы должны использовать $cordovaFile с методом copyFile(path, file, newPath, newFile).

Перед использованием $cordovaFile вы должны установить его плагин с помощью этой команды: cordova plugin add org.apache.cordova.file

Дополнительные сведения см. на странице ngCordova — $cordovaFile.

Надеюсь, это поможет!

person Nam Pham    schedule 06.11.2015