b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

providers.media_gallery文件夹_moon文件夹是什么

电脑杂谈  发布时间:2017-01-07 22:01:09  来源:网络整理

I have an ionic mobile app and in my app, I want to be able to select images from gallery but I get this error after selecting the image

java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaDocumentsProvider uri content://com.android.providers.media.documents/document/image:58 from pid=2173, uid=10062 requires android.permission.MANAGE_DOCUMENTS, or grantUriPermission()

this is my code to select image from gallery and add it

var options = {
      destinationType : Camera.DestinationType.FILE_URI,
      sourceType : Camera.PictureSourceType.PHOTOLIBRARY,
      allowEdit : false,
      encodingType: Camera.EncodingType.JPEG,
      popoverOptions: CameraPopoverOptions,
      mediaType: Camera.MediaType.PICTURE,
      correctOrientation: true
    };

   // 3
    $cordovaCamera.getPicture(options).then(function(imageData) {
   // 4
      var imagetype;
      onImageSuccess(imageData);
      function onImageSuccess(fileURI) {
        console.log("im in image success")
        console.log(fileURI)
        createFileEntry(fileURI);
      }

      function createFileEntry(fileURI) {
        console.log("im in create file entry")
        console.log(fileURI)
        window.resolveLocalFileSystemURL(fileURI, copyFile, fail);
      }

       // 5
      function copyFile(fileEntry) {
        console.log("im in file entry")
        console.log(fileEntry)
        var name = fileEntry.fullPath.substr(fileEntry.fullPath.lastIndexOf('/') + 1);
        var newName = (new Date()).getTime() + name;
         halfthru(fileEntry, newName); //diff
         getImageType(fileEntry); //diff

      }

      function getImageType(fileEntry) { //diff
        var typeImage;
        $scope.$evalAsync(function() {
          fileEntry.file(function(file){
            console.log(fileEntry.file)
            console.log(file)
            typeImage= file.type;
            $scope.imagelist = typeImage;
            imagetype = typeImage;
          }, function(e){
          });
        })

      }

     function halfthru(fileEntry, newName) {
      console.log("halftru")
        window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function(fileSystem2) {
          fileEntry.copyTo(
            fileSystem2,
            newName,
            onCopySuccess,
            fail
          );
        }, fail);
      }

      // 6
      function onCopySuccess(entry) {
        console.log("im in copy success")
        console.log(entry)
          $scope.activeSlide = index;
          if(modalExists === false) {
            $ionicModal.fromTemplateUrl('image-modal.html', {
              scope: $scope,
            }).then(function(modal) {

              $scope.modal1 = modal;
              $scope.modal1.show();
              modalExists = true;
              $scope.$evalAsync($scope.images.push({file: entry.nativeURL, type: $scope.imagelist}));
              imagesModalCount =  $scope.images.length;
              attachedImageCount = $scope.imagesAttached.length;
            });
          }
          else {
            $scope.modal1.show();
            $scope.$evalAsync($scope.images.push({file: entry.nativeURL, type: $scope.imagelist}));
            imagesModalCount =  $scope.images.length;
            attachedImageCount  = $scope.imagesAttached.length;
          }

          $scope.$on('$destroy', function() {
            $scope.modal1.remove();
          });

      }

      function fail(error) {

      }
    }, function(err) {

    });

my config.xml file

<platform name="android">
    <icon src="resources/android/icon/drawable-ldpi-icon.png" density="ldpi"/>
    <icon src="resources/android/icon/drawable-mdpi-icon.png" density="mdpi"/>
    <icon src="resources/android/icon/drawable-hdpi-icon.png" density="hdpi"/>
    <icon src="resources/android/icon/drawable-xhdpi-icon.png" density="xhdpi"/>
    <icon src="resources/android/icon/drawable-xxhdpi-icon.png" density="xxhdpi"/>
    <icon src="resources/android/icon/drawable-xxxhdpi-icon.png" density="xxxhdpi"/>
    <splash src="resources/android/splash/drawable-land-ldpi-screen.png" density="land-ldpi"/>
    <splash src="resources/android/splash/drawable-land-mdpi-screen.png" density="land-mdpi"/>
    <splash src="resources/android/splash/drawable-land-hdpi-screen.png" density="land-hdpi"/>
    <splash src="resources/android/splash/drawable-land-xhdpi-screen.png" density="land-xhdpi"/>
    <splash src="resources/android/splash/drawable-port-ldpi-screen.png" density="port-ldpi"/>
    <splash src="resources/android/splash/drawable-port-mdpi-screen.png" density="port-mdpi"/>
    <splash src="resources/android/splash/drawable-port-hdpi-screen.png" density="port-hdpi"/>
    <splash src="resources/android/splash/drawable-port-xhdpi-screen.png" density="port-xhdpi"/>
    <splash src="resources/android/splash/drawable-port-xxhdpi-screen.png" density="port-xxhdpi"/>
    <splash src="resources/android/splash/drawable-port-xxxhdpi-screen.png" density="port-xxxhdpi"/>
    <config-file target="AndroidManifest.xml" parent="/*">
      <uses-permission platform="android" name="android.permission.MANAGE_DOCUMENTS" />
        </config-file>
  </platform>

This is happening on an android 5.1.1 phone.

My guess will be this is caused somehow from the cordova-file-plugin when resolveLocalFileSystemURL method is called but how do i solve this?

It says that you need MANAGE_DOCUMENTS permissions, have you add this permission in your config.xml ?

<uses-permission android:name="android.permission.MANAGE_DOCUMENTS" />

In my app, to add an image from gallery I do:

$scope.addMedia = function addMedia() {
    var buttons = [];
    var onCameraSuccess = function onCameraSuccess(imageData) {
        $scope.files.push(imageData);
    };

    var onCameraError = function onCameraError() {};

    var photoConfig = {
        quality: 70,
        targetWidth: 400,
        targetHeight: 400,
        allowEdit: false,
        destinationType: window.navigator.camera.DestinationType.DATA_URL,
        encodingType: window.navigator.camera.EncodingType.JPEG,
        saveToPhotoAlbum: false,
        mediaType: window.navigator.camera.MediaType.ALLMEDIA,
        cameraDirection: window.navigator.camera.Direction.BACK
    };

    buttons.push({
        text: 'Take a photo',
        action: function cameraUpload() {
            // Camera upload
            window.navigator.camera.getPicture(onCameraSuccess, onCameraError, angular.extend({
                sourceType: window.navigator.camera.PictureSourceType.CAMERA
            }, photoConfig));
        }
    });

    buttons.push({
        text: 'Choose a photo',
        action: function deviceUpload() {
            // Device upload
            window.navigator.camera.getPicture(onCameraSuccess, onCameraError, angular.extend({
                sourceType: window.navigator.camera.PictureSourceType.PHOTOLIBRARY
            }, photoConfig));
        }
    });

    $ionicActionSheet.show({
        buttons: buttons,
        cancelText: 'Cancel',
        cancel: function cancel() {},
        buttonClicked: function buttonClicked(index) {
            buttons[index].action();

            return true;
        }
    });
};

本文地址:IT屋 » cordova-plugin-camera: Permission Denial: reading com.android.providers.media.MediaDocumentsProvider requires android.permission.MANAGE_DOCUMENTS

我有一个离子的移动应用程序,并在我的应用程序,我希望能够从图库中选择图片,但我选择图像后,得到这个错误

  java.lang.SecurityException异常:权限拒绝:阅读com.android.providers.media.MediaDocumentsProvider URI内容://com.android.providers.media.documents/document/image: 58 PID = 2173,UID = 10062需要android.permission.MANAGE_DOCUMENTS,或grantUriPermission()

这是我的code,从库中选择图像,并将其添加

  VAR选项= {
      destinationType:Camera.DestinationType.FILE_URI,
      sourceType的:Camera.PictureSourceType.PHOTOLIBRARY,
      allowEdit:假的,
      encodingType:Camera.EncodingType.JPEG,
      popoverOptions:CameraPopoverOptions,
      mediaType的:Camera.MediaType.PICTURE,
      correctOrientation:真
    };   // 3
    $ cordovaCamera.getPicture(选项)。然后(功能(为imageData){
   // 4
      VAR IMAGETYPE;
      onImageSuccess(为imageData);
      功能onImageSuccess(fileURI所){
        的console.log(“即时图像成功”)
        的console.log(fileURI所)
        createFileEntry(fileURI所);
      }      功能createFileEntry(fileURI所){
        的console.log(“即时通讯在创建文件条目”)
        的console.log(fileURI所)
        window.resolveLocalFileSystemURL(fileURI所,copyFile,失败);
      }       // 5
      功能copyFile(FileEntry的){
        的console.log(“IM文件条目”)
        的console.log(FileEntry的)
        变种名称= fileEntry.fullPath.substr(fileEntry.fullPath.lastIndexOf('/')+ 1);
        VAR了newName =(新的Date())的getTime()+名。
         halfthru(FileEntry的,了newName); //差异
         getImageType(FileEntry的); //差异      }      功能getImageType(FileEntry的){//差异
        VAR typeImage;
        $范围。$ evalAsync(函数(){
          fileEntry.file(功能(文​​件){
            的console.log(fileEntry.file)
            的console.log(文件)
            typeImage = file.type;
            $ scope.imagelist = typeImage;
            IMAGETYPE = typeImage;
          },功能(E){
          });
        })      }     功能halfthru(FileEntry的,了newName){
      的console.log(“halftru”)
        window.resolveLocalFileSystemURL(cordova.file.dataDirectory,功能(fileSystem2){
          fileEntry.copyTo(
            fileSystem2,
            了newName,
            onCopySuccess,
            失败
          );
        },失败);
      }      // 6
      功能onCopySuccess(进入){
        的console.log(“即时通讯在复制成功”)
        的console.log(进入)
          $ scope.activeSlide =指数;
          如果(modalExists === FALSE){
            $ ionicModal.fromTemplateUrl('形象modal.html',{
              适用范围:$范围,
            }),然后(函数(模式){              $ scope.modal1 =模态;
              $ scope.modal1.show();
              modalExists = TRUE;
              $ $范围evalAsync($ scope.images.push({文件:entry.nativeURL,键入:$ scope.imagelist}))。
              imagesModalCount = $ scope.images.length;
              attachedImageCount = $ scope.imagesAttached.length;
            });
          }
          其他{
            $ scope.modal1.show();
            $ $范围evalAsync($ scope.images.push({文件:entry.nativeURL,键入:$ scope.imagelist}))。
            imagesModalCount = $ scope.images.length;
            attachedImageCount = $ scope.imagesAttached.length;
          }          $范围。在$('$破坏',函数(){
            $ scope.modal1.remove();
          });      }      功能失效(错误){      }
    },功能(错误){    });

我的config.xml文件

 &LT;平台名称=“机器人”&GT;
    &LT;图标SRC =“资源/安卓/图标/绘-LDPI-的icon.png”密度=“LDPI”/&GT;
    &LT;图标SRC =“资源/安卓/图标/绘-MDPI-的icon.png”密度=“MDPI”/&GT;
    &LT;图标SRC =“资源/安卓/图标/绘-HDPI-的icon.png”密度=“华电国际”/&GT;
    &LT;图标SRC =“资源/安卓/图标/绘-xhdpi-的icon.png”密度=“xhdpi”/&GT;
    &LT;图标SRC =“资源/安卓/图标/绘-xxhdpi-的icon.png”密度=“xxhdpi”/&GT;
    &LT;图标SRC =“资源/安卓/图标/绘-xxxhdpi-的icon.png”密度=“xxxhdpi”/&GT;
    &LT;飞溅SRC =“资源/安卓/飞溅/绘-土地LDPI-screen.png”密度=“土地LDPI”/&GT;
    &LT;飞溅SRC =“资源/安卓/飞溅/绘-土地MDPI-screen.png”密度=“土地MDPI”/&GT;
    &LT;飞溅SRC =“资源/安卓/飞溅/绘-土地HDPI-screen.png”密度=“土地华电国际”/&GT;
    &LT;飞溅SRC =“资源/安卓/飞溅/绘-土地xhdpi-screen.png”密度=“土地xhdpi”/&GT;
    &LT;飞溅SRC =“资源/安卓/飞溅/绘端口-LDPI-screen.png”密度=“港LDPI”/&GT;
    &LT;飞溅SRC =“资源/安卓/飞溅/绘端口-MDPI-screen.png”密度=“港MDPI”/&GT;
    &LT;飞溅SRC =“资源/安卓/飞溅/绘端口-HDPI-screen.png”密度=“港华电国际”/&GT;
    &LT;飞溅SRC =“资源/安卓/飞溅/绘端口-xhdpi-screen.png”密度=“港xhdpi”/&GT;
    &LT;飞溅SRC =“资源/安卓/飞溅/绘端口-xxhdpi-screen.png”密度=“港xxhdpi”/&GT;
    &LT;飞溅SRC =“资源/安卓/飞溅/绘端口-xxxhdpi-screen.png”密度=“港xxxhdpi”/&GT;
    &LT;配置文件中的目标=“AndroidManifest.xml中”父=“/ *”&GT;
      &LT;使用许可权的平台=“机器人”NAME =“android.permission.MANAGE_DOCUMENTS”/&GT;
        &LT; /配置-文件&gt;
  &LT; /平台&GT;

这是一款Android 5.1.1的手机上发生的事情。providers.mediaproviders.media

我的猜测将在以某种方式从科尔多瓦文件-插件时引起resolveLocalFileSystemURL方法被调用但我怎么解决这个问题?

解决方案

它说,你需要MANAGE_DOCUMENTS权限,你在你的config.xml中添加此权限吗?

&LT;使用许可权的android:NAME =“android.permission.MANAGE_DOCUMENTS”/&GT;

在我的应用程序,从图库添加图像我做的:

  $ scope.addMedia =功能addMedia(){
    VAR按钮= [];
    VAR onCameraSuccess =功能onCameraSuccess(为imageData){
        $ scope.files.push(为imageData);
    };    变种onCameraError =函数onCameraError(){};    VAR photoConfig = {
        品质:70,
        targetWidth:400,
        targetHeight:400,
        allowEdit:假的,
        destinationType:window.navigator.camera.DestinationType.DATA_URL,
        encodingType:window.navigator.camera.EncodingType.JPEG,
        saveToPhotoAlbum:假的,
        mediaType的:window.navigator.camera.MediaType.ALLMEDIA,
        cameraDirection:window.navigator.camera.Direction.BACK
    };    buttons.push({
        文字:“拍照”,
        动作:功能cameraUpload(){
            //摄像机上传
            window.navigator.camera.getPicture(onCameraSuccess,onCameraError,angular.extend({
                sourceType的:window.navigator.camera.PictureSourceType.CAMERA
            },photoConfig));
        }
    });    buttons.push({
        文本:“选择照片”,
        动作:功能deviceUpload(){
            //设备上传
            window.navigator.camera.getPicture(onCameraSuccess,onCameraError,angular.extend({
                sourceType的:window.navigator.camera.PictureSourceType.PHOTOLIBRARY
            },photoConfig));
        }
    });    $ ionicActionSheet.show({
        按钮:按钮,
        cancelText:'取消',
        取消:功能取消(){},
        buttonClicked:功能buttonClicked(指数){
            按钮[指数] .action();            返回true;
        }
    });
};

本文地址:IT屋 » 科尔多瓦 - 插件:拒绝权限:读com.android.providers.media.MediaDocumentsProvider需要android.permission.MANAGE_DOCUMENTS


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-25002-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 大门寺笑
        大门寺笑

        luna怎么好像去整容了变化好大

      • 杜贝贝
        杜贝贝

        我估计很多还是雇佣的

      • 皮尔斯布鲁斯南
        皮尔斯布鲁斯南

        我要去厕所哭了~哭完继续加班

      热点图片
      拼命载入中...