2017-02-01 2 views
0

저는 통합 $ cordovaImagePicker이며 키트 캣과 롤리팝에서 잘 작동하지만 최근에 마쉬멜로 우와 충돌하는 동일한 앱을 설치했습니다.

$cordovaImagePicker.getPictures(options).then(function (results) { 
    for (var i = 0; i < results.length; i++) { 
     $scope.imagePath = results[i]; 
    } 
}, function(error) { 
    console.log('Error: ' + JSON.stringify(error)); 
}); 

이 java.lang.SecurityException : 권한 거부 : 읽기 com.android.providers.media.MediaProvider URI 내용 : 다음은 내가 사용하고있는 코드입니다 // 미디어/외부/이미지/ 10319 = PID = 10669, UID에서 미디어 android.content.ContentProvider $ Transport.enforceReadPermission에서 android.permission.READ_EXTERNAL_STORAGE, 또는 android.content.ContentProvider.enforceReadPermissionInner (ContentProvider.java:605)에서 grantUriPermission() 를 (필요 ContentProvider.java : 480) android.content.ContentProvider $ Transport.query (ContentProvider.java:211) at android.content.ContentProviderNative.onTransact (ContentProviderNative.java:112) android.os.Binder.execTransact (Binder.java:453)

어떤 도움이 필요합니까?

+1

도움이 될 수있는 동안 나는 플러그인이 높은 안드로이드 버전에 대한 런타임 권한이 없습니다 thinnk. –

답변

0

더 많은 시간을 보낸 후에 Android 마시맬로가 런타임에 권한을 요청하는 권한 부여 메커니즘이 다르므로 이러한 사항을 알아 냈습니다. 그러면 음식을 제공해야합니다. 아래 코드는

var permissions = cordova.plugins.permissions; 
permissions.hasPermission(permissions.READ_EXTERNAL_STORAGE, 
      function(status) { 
       if (status.hasPermission) { 
        $cordovaImagePicker.getPictures(options).then(function (results) { 
         for (var i = 0; i < results.length; i++) { 
          $scope.imagePath = results[i]; 
         } 
        }, function(error) { 
          console.log('Error: ' + JSON.stringify(error)); // In case of error 
        }); 
       } else { 
        //permission is not granted case, now preparing for granting permission 
        permissions.requestPermission(
         permissions.READ_EXTERNAL_STORAGE, 
         function(status) { 
          if(!status.hasPermission) { 
          console.log(); 
          } 
         }, 
         function(status) { 
          console.log(); 
         } 
        );      
       } 
      }, function(status) { 
       console.log("permission not available"); 
      }); 

첫 번째로 허가가 부여되지 않은 경우 허가가 부여되는지 확인한 후 허가를 요청합니다. 아래 링크 자세한 내용은

https://www.npmjs.com/package/cordova-plugin-android-permissions

관련 문제