2017-02-01 16 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 内容: 以下は、私が使用していたコードです//メディア/外部/画像/ android.content.ContentProvider $ Transport.enforceReadPermissionでandroid.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:605) でのpid = 10669、UID = 10319 がandroid.permission.READ_EXTERNAL_STORAGEを必要とする、または grantUriPermission() からメディア( ContentProvider.java:480)(Binder.java:453)の にある、android.content.ContentProviderNative.onTransact

助けが必要ですか?

+1

参考にすることができ、私はプラグインが高いアンドロイドのバージョンの実行時のアクセス許可が不足していthinnk。 –

答えて

0

もう少し時間を過ごした後、私はAndroid Marshmallowが実行時に許可を求める権限の異なるメカニズムを持っているので、これらのことを考え出したので、出産予定が必要です。以下はコードです

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