0

一度に複数の権限を与えたい.....これは私のコードです。これは一度に複数の権限を与えたいサンプルです。私は、実行時にだから私は権限を一つずつ取得しています権限を一つずつを与えている。ここ実行時に一度に複数の権限を与える方法

public class MainActivity extends Activity { 

public static final int R_PERM = 123; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.data); 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

    if ((CheckPermission(this, Manifest.permission.CAMERA))&& 
     (CheckPermission(this, Manifest.permission.READ_PHONE_STATE))&& 
     (CheckPermission(this, Manifest.permission.NFC))) 
    { 
     PermHandling(); 
    } 

    else { 
     RequestPermission(MainActivity.this, Manifest.permission.CAMERA, R_PERM); 
     RequestPermission(MainActivity.this, Manifest.permission.READ_PHONE_STATE, R_PERM); 
     RequestPermission(MainActivity.this, Manifest.permission.NFC, R_PERM); 

     //NewPermHandling(); 
    } 

} 
private void PermHandling() { 
    //My app internal parts.... 
    //Here my stuff works... 
} 

//private void NewPermHandling(){ 

//} 

@Override 
public void onRequestPermissionsResult(int permsRequestCode, String[] permissions, int[] grantResults) { 

    switch (permsRequestCode) { 

     case R_PERM: { 
      if (grantResults.length > 0 
        && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
       PermHandling(); 
      } else { 
       //Toast.makeText(this, "Please Grant Permissions other wise app will close.!", Toast.LENGTH_SHORT).show(); 
      } 
      return; 
     } 
    } 
} 

public void RequestPermission(Activity thisActivity, String Permission, int Code) { 
    if (ContextCompat.checkSelfPermission(thisActivity, 
      Permission) 
      != PackageManager.PERMISSION_GRANTED) { 
     if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity, 
       Permission)) { 
     } else { 
      ActivityCompat.requestPermissions(thisActivity, 
        new String[]{Permission}, 
        Code); 
     } 
    } 
} 

public boolean CheckPermission(Context context, String Permission) { 
    if (ContextCompat.checkSelfPermission(context, 
      Permission) == PackageManager.PERMISSION_GRANTED) { 
     return true; 
    } else { 
     return false; 
    } 
} 

}

一度にすべての権限を与えるために私を提案してください。..

私を提案してください。私のコードどこを変更する必要がありますか。

ここで私私のアプリは、私は、私はカメラ、場所、ストレージなどのように一度に与える必要がより多くの権限を持っている... Mycodeで私を提案してください....

更新 、すべての許可がでなければなりませんで一度....再びチェックボタン

することはございません代わりに、一度に一つの許可を送信するのでは,,,,私のコードでは、この種のあなたの要求Permisionメソッド内

+0

あなたの回答で自分のコードを修正できますか?私はこれに新しいです許可書 –

答えて

-1

を私に勧めてくださいます複数の使用を求めることができます。

 ActivityCompat.requestPermissions(thisActivity, 
       new String[]{Permission1,Permission2,Permission3}, 
       Code); 

どこPermission1 = Manifest.permission.CAMERA Permission2 = Manifest.permission.READ_PHONE_STATE Permission3 = Manifest.permission.NFCこれは何

はそれがAndroidはアクセス権のためで次々に尋ねますですダイアログボックス。また、onRequestPermissionsResultで一度に許可されるアクセス権を確認するには、int [] grantResultsを実行します。

int [] grantResultsは、権限付与の順番で許可結果を返します。我々のケースで - Manifest.permission.CAMERA 、Manifest.permission.READ_PHONE_STATE、 Manifest.permission.NFC

は、それが詳細に説明されてきたところ以下のリンクを見てください。

https://developer.android.com/training/permissions/requesting.html

-1

あなたは許可配列を作成し、requestPermissions()に直接渡すことができます。

String[] PERMISSIONS = new String[]{Manifest.permission.READ_CONTACTS, Manifest.permission.RECORD_AUDIO}; 

requestPermissions()

requestPermissions(PERMISSIONS, 10); 

に渡し、あなたはここで

@Override 
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 

    switch (requestCode) { 
     case 10: 
      if (hasAllPermissionsGranted(grantResults)) { 
       // Permission Granted 

      } else { 
       // Permission Denied 

      } 
      break; 
     default: 
      super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
    } 
} 

onRequestPermissionsResult内のすべての権限を持っているか否かをチェックすることはhasAllPermissionsGranted方法である

public boolean hasAllPermissionsGranted(@NonNull int[] grantResults) { 
    for (int grantResult : grantResults) { 
     if (grantResult == PackageManager.PERMISSION_DENIED) { 
      return false; 
     } 
    } 
    return true; 
} 

複数の許可を扱うもう1つの方法については、Requesting Runtime Permission – Part 2

+0

ユーザー@ RRR卿.....私のコードであなたの答えを更新してください..... –

+0

ええ、あなたのプロジェクトをメールしてください、私はあなたのすべてのタスクを完了します:)我々はここにいるあなたのプロジェクトを完了させるのではなく、あなたを助けます。コードスニペットは提供できますが、コード全体は提供できません。 –

+0

上記のコードは私のコードです...教えてください...私のプロジェクトは巨大で秘密です...私はそれの一部です。まだ完全なコードはありません。 ..ごめんなさい...。助けてください。 –

関連する問題