0

Ich möchte mehrere Berechtigungen auf einmal vergeben ..... Dies ist mein Code .. das ist nur Beispiel Ich möchte mehrere Berechtigungen auf einmal vergeben ..So geben Sie mehrere Berechtigungen gleichzeitig in Runtime android M unter meinem Code

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; 
    } 
} 

}

Hier habe ich Berechtigungen bei einer nach dem anderen So erhalte ich Berechtigungen eins nach dem anderen zu Laufzeit mich bitte vorschlagen alle Berechtigungen auf einmal zu geben ..

Bitte empfehlen Sie mir auf mein Code wo soll ich ändern müssen ..

hier ich meine App ich mehr Berechtigungen habe ich wie Kamera auf einmal geben muß, Standort, Lagerung etc ... Bitte machen Sie mich auf MyCode ....

aktualisiert und alle Berechtigungen sein sollten einmal mit nie wieder fragen Prüftaste ....

Bitte empfehlen Sie mir dieser Art in meinem Code ,,,,

+0

Kann jemand meinen Code in Ihrer Antwort korrigieren ...Ich bin neu zu diesem Permissions –

Antwort

-1

in Ihrer Methode anfordern permision statt einer Genehmigung zu einem Zeitpunkt zu senden Sie kann um mehrfache Verwendung bitten.

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

Wo Permission1 = Manifest.permission.CAMERA Permission2 = Manifest.permission.READ_PHONE_STATE Permission3 = Manifest.permission.NFC

Was dies tut, ist es für Berechtigungen eines nach dem anderen Android fragen macht in Dialogboxen. Und Sie können prüfen, welche Berechtigungen in Ihrem onRequestPermissionsResult auf einmal erteilt werden, indem Sie das Int [] GrantResults

Beachten Sie, dass int [] GrantResults Berechtigungsgewährungsergebnis in der Reihenfolge der angeforderten Berechtigungen zurückgibt. In unserem Fall - Manifest.permission.CAMERA , Manifest.permission.READ_PHONE_STATE, Manifest.permission.NFC

Werfen Sie einen Blick auf folgenden Link, wo es im Detail erläutert wurde.

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

-1

Sie können Erlaubnis Array erstellen und direkt an requestPermissions() passieren.

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

und übergeben es an requestPermissions()

requestPermissions(PERMISSIONS, 10); 

und prüfen Sie, ob Sie alle Erlaubnis bekam oder nicht in onRequestPermissionsResult

@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); 
    } 
} 

Hier ist hasAllPermissionsGranted Methode

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

Für einen anderen Ansatz, um sich um mehrere Berechtigungen kümmern, überprüfen Sie Requesting Runtime Permission – Part 2

+0

Benutzer @ RRR Sir ..... Können Sie bitte aktualisieren Sie Ihre Antwort mit meinem Code ..... –

+0

Ja sicher, mailen Sie mir Ihr Projekt, ich werde alle Ihre Aufgabe abschließen :) Wir sind hier um Ihnen zu helfen, Ihr Projekt nicht abzuschließen. Wir können Ihnen Code-Schnipsel geben, aber nicht den ganzen Code. –

+0

Das obige ist mein Code Herr ... Bitte schlagen Sie mir Herr ... Mein Projekt ist riesig ... und vertraulich ... Ich bin nur ein Teil davon ,,, noch habe ich nicht von vollem Code. .. sorry sir .... Bitte helfen Sie mir –