2019年5月25日土曜日

android開発 permission取得

2019 May 25.

"AndroidManifest.xml"
 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="xxx.xxx.sampletakephotogetimagefile">
    <uses-feature android:name="android.hardware.camera" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.hardware.camera.autofocus" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>



  1. if(Build.VERSION.SDK_INT >= 23){
  2. checkPermission();
  3. }
  4. PROCESS_AFTER_GETTING_PERMISSIONS
  5.  
  6.  
  7. // Permissionの確認
  8. // reuse of https://akira-watson.com/android/mediastore.html
  9. @TargetApi(Build.VERSION_CODES.M)
  10. public void checkPermission() {
  11. if (checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED){
  12. requestCameraPermission();
  13. }
  14. if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
  15. requestExStoragePermission();
  16. }
  17. }
  18.  
  19. // CameraPermission許可を求める
  20. @TargetApi(Build.VERSION_CODES.M)
  21. private void requestCameraPermission() {
  22. if (shouldShowRequestPermissionRationale( Manifest.permission.CAMERA)) {
  23. requestPermissions(new String[]{Manifest.permission.CAMERA}, REQUEST_PERMISSION_CAMERA);
  24.  
  25. } else {
  26. Toast toast = Toast.makeText(this, "許可されないとアプリが実行できません", Toast.LENGTH_SHORT);
  27. toast.show();
  28. requestPermissions(new String[]{Manifest.permission.CAMERA }, REQUEST_PERMISSION_CAMERA);
  29. }
  30. }
  31.  
  32. // ExternalStoragePermission許可を求める
  33. @TargetApi(Build.VERSION_CODES.M)
  34. private void requestExStoragePermission() {
  35. if (shouldShowRequestPermissionRationale( Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
  36. requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_PERMISSION__EX_STORAGE);
  37.  
  38. } else {
  39. Toast toast = Toast.makeText(this, "許可されないとアプリが実行できません", Toast.LENGTH_SHORT);
  40. toast.show();
  41. requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE }, REQUEST_PERMISSION__EX_STORAGE);
  42. }
  43. }
  44.  
  45.  
  46. // requestPermission結果に対する処理
  47. @Override
  48. public void onRequestPermissionsResult( int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
  49. if (requestCode == REQUEST_PERMISSION_CAMERA) {
  50. if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
  51. // 拒否された時の対応
  52. Toast toast = Toast.makeText(this, "これ以上なにもできません", Toast.LENGTH_SHORT);
  53. toast.show();
  54. }
  55. } else if (requestCode == REQUEST_PERMISSION__EX_STORAGE) {
  56. if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
  57. // 拒否された時の対応
  58. Toast toast = Toast.makeText(this, "これ以上なにもできません", Toast.LENGTH_SHORT);
  59. toast.show();
  60. }
  61. } else {
  62. Toast toast = Toast.makeText(this, "Bad requestCode", Toast.LENGTH_SHORT);
  63. toast.show();
  64. }
  65. }

0 件のコメント:

コメントを投稿