ページ

2016年7月16日土曜日

Android MarshmallowのPermission問題をPluginで解決


Android 6.0(Marshmallow)からpermissionモデルが新しくなってます。

Android 6.0未満はインストール時に必要なpermissionsを一括で
同意し、アプリの実装も許可されているものとして実装してます。
が、
Android 6.0からはインストール後の初期状態は全て拒否されており、
アプリを起動して必要になった時にユーザーに同意を求めます。

PhoneGapを使ってる場合

Javaでネイティブでゴリゴリ実装〜という場合は素直にユーザーの同意が
必要になった場合に
if (checkSelfPermission(Manifest.permission.READ_CONTACTS)
        != PackageManager.PERMISSION_GRANTED) {
   // ユーザーに許可を求める
   ・・・・
}
といった具合に実装していかないといけませんが、PhoneGapなら
cordova-plugin-android-permissionsという便利なプラグインがっ!!

cordova-plugin-android-permissions


Android6.0未満の場合はpermissionチェックで全て許可済みになります。
今後の為に入れておいて損は無いかな〜と。
Install
$ phonegap cordova plugin add cordova-plugin-android-permissions
例)カメラのパーミッションが必要な場合
var permissions = cordova.plugins.permissions;
permissions.hasPermission(permissions.CAMERA, checkPermissionCallback, null);

function checkPermissionCallback(status) {
  if(!status.hasPermission) {
    var errorCallback = function() {
      console.warn('Camera permission is not turned on');
    }

    permissions.requestPermission(
      permissions.CAMERA,
      function(status) {
        if(!status.hasPermission) errorCallback();
      },
      errorCallback);
  }
}
指定できるpermission一覧はここで確認できます。

0 件のコメント:

コメントを投稿