2015-11-09 8 views
5

enter image description hereWie die „Frage nie wieder“ Wahl in Android M Runtime Erlaubnis Dialog

Ich möchte wissen, vergessen, wo die „wieder fragen nie“ Checkbox boolean Flag gespeichert wird und wie ihr Wert löschen? Nicht unbedingt programmatisch, sondern manuell - über Einstellung, Befehl oder ein Werkzeug. Versucht App-Daten zu löschen, zu deinstallieren, beide zu deinstallieren und zu löschen, versuchte manuelles Ein- und Ausschalten der Berechtigungen hin und her, versuchte sogar, ein neueres Marshmallow-Image für den Emulator einzurichten, aber kein Glück!

+1

Ich glaube, wenn Sie zu Einstellungen gehen und dann Anwendungen und wählen Sie Ihre Anwendung, sollte es irgendwo da sein. – Johan

+1

Ja, richtig, ich habe gerade zufällig die Option "App-Einstellungen zurücksetzen" entdeckt. Ich wusste es bis jetzt nicht. – WindRider

+0

Nein, es funktioniert auch nicht! :(Löschen meiner Antwort! – WindRider

Antwort

6

Beide Clearingdaten (Einstellungen> Apps> App> Speicher> Daten löschen) und deinstallieren Sie die App löschen Sie den Status dieser Flagge, zusammen mit dem Löschen aller anderen im Zusammenhang mit Laufzeitberechtigungen für die App.

Dieses Verhalten wurde auf einem Nexus 5 mit Android 6.0 über this sample app getestet.

Ich erinnere mich, eine manuelle Option für diese irgendwo zu sehen, aber ich kann es jetzt nicht finden. Es könnte etwas sein, das in den M Developer Preview Releases bereits existierte und für die finale Version 6.0 gezogen wurde.

+0

Ich benutze den Emulator - nichts funktioniert. Könntest du bitte einen Emulator testen? – WindRider

+0

@WindRider: Beide Ansätze funktionieren gut mit dieser Beispielanwendung auf einem Android 6.0-Emulator. – CommonsWare

+0

Das Problem war in meinem Code. Ich habe Berechtigungsgruppen anstelle von Berechtigungen verwendet. Dies führte dazu, dass das System PERMISSION_DENIED jedes Mal sofort zurückgab, egal was passiert. – WindRider

3

es gefunden:

Systemeinstellungen> Apps> Zurücksetzen App Einstellungen (im Menü)

enter image description here

4

Sie können "vergessen", indem Sie die Daten aus den App-Einstellungen löschen. Wenn Sie jedoch feststellen möchten, ob eine Berechtigung nicht erneut angefordert wurde, können Sie sie mithilfe der Methode onRequestPermissionsResult() programmatisch überprüfen.

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 
    for(String permission: permissions){ 
      if(ActivityCompat.shouldShowRequestPermissionRationale(this, permission)){ 
       //denied 
      }else{ 
       if(ActivityCompat.checkSelfPermission(this, permission) == PackageManager.PERMISSION_GRANTED){ 
        //allowed 
       } else{ 
        //set to never ask again 
        Log.e("set to never ask again", permission); 
       } 
      } 
    } 
} 

PS: Ich habe bei this Antwort vollständige Umsetzung beantwortet.

Verwandte Themen