android6.0から権限の取得をする必要が出てきました。
権限の取得の難しい部分ですが、アプリインストール時か、利用直前や、場合によっては、「このアプリでは目的〇〇〇〇〇〇の為に権限〇〇〇〇〇をお願いしております。」みたいなダイアログを出してから権限を出すアプリも多いです。
カメラの権限の取得
int permissionCheck = ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA); if (permissionCheck != PackageManager.PERMISSION_GRANTED) { // Android 6.0 のみ、該当パーミッションが許可されていない場合 final int REQUEST_CODE = 1; ActivityCompat.requestPermissions(MainActivity.this, new String[]{ Manifest.permission.CAMERA }, REQUEST_CODE); }
を呼ぶと、一応権限のチェックが入っていますが、ダイアログで確認が出ます。その確認の受けの部分で
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); final int REQUEST_CODE = 1; if (requestCode == REQUEST_CODE) { for (int i = 0; i < permissions.length; i++) { final String permission = permissions[i]; final int grantResult = grantResults[i]; switch (permission) { case Manifest.permission.CAMERA: if (grantResult == PackageManager.PERMISSION_GRANTED) { //許可されました。 } break; default: break; } } } }
を呼ばれます。今回がカメラの枠組みで権限の取得をしてみましたが、他の権限などもほぼ同じ枠組みで要求ができると思いますので、いろいろ試してみてください。