カメラのパーミッションを得るためにrequestPermissions()を実行しているのですが、Android 7 の端末だとダイアログボックスが出ず、許可できません。
requestPermissions()を実行してもダイアログボックスが出ず、直後にonRequestPermissionsResult()が実行されてPERMISSION_DENIEDが返ってきます。
ダイアログボックスが出ない条件などあれば、教えていただけますでしょうか。
Java
1 private boolean checkPermissions() { 2 Log.d(TAG, "checkStoragePermission() start"); 3 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 4 int storagePermission = PermissionChecker.checkSelfPermission(this, 5 android.Manifest.permission.WRITE_EXTERNAL_STORAGE); 6 Log.d(TAG, "current storage permission: " + storagePermission); 7 int cameraPermission = PermissionChecker.checkSelfPermission(this, 8 android.Manifest.permission.CAMERA); 9 Log.d(TAG, "current camera permission: " + cameraPermission); 10 11 ArrayList<String> permissions = new ArrayList<>(); 12 if (storagePermission != PermissionChecker.PERMISSION_GRANTED) { 13 Log.i(TAG, "storage permission is not granted"); 14 permissions.add(android.Manifest.permission.WRITE_EXTERNAL_STORAGE); 15 } 16 if (cameraPermission != PermissionChecker.PERMISSION_GRANTED) { 17 Log.i(TAG, "camera permission is not granted"); 18 permissions.add(android.Manifest.permission.CAMERA); 19 } 20 if (permissions.size() > 0) { 21 ActivityCompat.requestPermissions(this, 22 permissions.toArray(new String[0]), REQUEST_PERMISSIONS); 23 return false; 24 } 25 } else { 26 Log.d(TAG, "android version is earlier than MARSHMALLOW. ignore checking permissions"); 27 } 28 Log.d(TAG, "all permissions necessary for app have been granted."); 29 return true; 30 } 31 32 @Override 33 public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, 34 @NonNull int[] grantResults) { 35 Log.d(TAG, "onRequestPermissionsResult() start"); 36 Log.d(TAG, "requestCode: " + requestCode); 37 Log.d(TAG, "permissions: " + Arrays.toString(permissions)); 38 Log.d(TAG, "grantResults: " + Arrays.toString(grantResults)); 39 40 switch (requestCode) { 41 case REQUEST_PERMISSIONS: { 42 Log.d(TAG, "requestCode: REQUEST_PERMISSIONS"); 43 // do something 44 break; 45 } 46 } 47 }
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2017/03/23 11:22