Android M-Berechtigung Problem mit dem Dialog "nicht wieder Fragen"
Es ist ein einfacher Weg, um die Berechtigung erteilen, die von Scoped-Verzeichnis Zugreifen,aber Dialog erscheint eine checkbox mit der Bezeichnung "nicht wieder Fragen". Wenn der Benutzer auswählt, nicht wieder Fragen und verweigert die Anforderung, alle zukünftigen Anforderungen für die gegebene Verzeichnis aus Ihrem app wird automatisch gesperrt, und kein Antrag Benutzeroberfläche wird dem Benutzer präsentiert werden.
wenn der Benutzer bedauern oder Treffer, die checkbox, die durch Fehler,wie kann eine app Abhilfe??? app kann nicht Erlaubnis-dialog.
Wie können wir damit umgehen?
- wie kann eine app Abhilfe, die es können. Was Sie tun können, ist, dass er seine Meinung zu ändern, jederzeit und gehen Sie zu
app -> settings
und erteilen Sie dort die Berechtigungen. (Oder zumindest das ist, was ich tun würde) - In meiner app ohne Berechtigung wird es nicht geöffnet, So dass für die erste Zeit, die ich eingeben , Dialog erscheinen . wenn der Benutzer durch Fehler überprüft er "nicht wieder Fragen" .Dann wird er das nächste mal, das Dialogfeld wird nicht angezeigt. PERMISSION_GRANTED immer -1. ist irgendeiner Weise zu ändern, dass die Flagge ?
- Sie akzeptiert die Antwort, die hat nichts zu tun mit scoped directory access. Sind Sie sicher, dass Ihr problem betrifft die Android 7.0 Gültigkeitsbereich directory access API?
- Ich bin nicht gefragt, wie access-Verzeichnis. Ich fragte, wie um zu zeigen, permission-dialog, die auch nach "nicht wieder Fragen" check-box angeklickt wird.
InformationsquelleAutor Ranjith Kumar | 2016-11-17
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten wir nutzen, shouldShowRequestPermissionRationale.Bitte gehen Sie durch diese:
Entwickler nicht geändert, dass Flagge. Sonst würde es keine Sinn, mit der checkbox, als Entwickler würde einfach ignorieren, indem Sie die fahne wechseln.
Jedoch, Ihre Frage zeigt eine ziemlich beträchtliche Fehler in der Gültigkeitsbereich directory access: die Benutzer hat eine begrenzte Fähigkeit zu ändern, das flag. Es scheint nicht zu sein, ein Ort, in Einstellungen, um diesen Zustand zu ändern insbesondere die Art und Weise kann der Benutzer manuell erteilen, abgelehnt Laufzeit Berechtigung.
Auf einem Nexus 5X läuft die 7.1-Album, "Daten Löschen" wird dieses flag zurückgesetzt, aber das hat breitere Auswirkungen. Auf einer Google-Pixel laufen 7.1, und auf einem Nexus 5X mit Android 7.0, nichts wird dieses flag zurückgesetzt, auch eine vollständige deinstallation der app.
Ich eingereicht haben einen bug-report über diese. Ich bin skeptisch, dass die situation verbessert werden sehr kurzfristig — am besten, Sie könnten es so fix "Daten Löschen" funktioniert zuverlässig.
Öffnen der App die Erlaubnis Einstellungen.
Können Sie nicht zeigen ein weiteres Dialogfeld Berechtigungen wenn der Benutzer überprüft hat, aus "nicht wieder Fragen."
Aber Sie können helfen, den Benutzer und öffnen die Einstellungen der App, wo der Benutzer Sie können manuell aktivieren Sie die erforderlichen Berechtigungen.
Zu tun, dass Sie brauchen, um zu starten, in der Absicht, ähnlich wie dieses:
Nun, um das zu wissen, wenn der Benutzer überprüft hat, aus der "nicht erneut Fragen" aktivieren, ist eine andere Sache und kann getan werden mit diese StackOverflow-Antwort.
Ich denke, was Sie tun müssen, ist, verwenden Sie die Methode shouldShowRequestPermissionRationale(String) würde false zurückgeben, wenn der Benutzer verweigert die Genehmigung und überprüft werden, und "nicht wieder Fragen".
Was sollten Sie tun, ist zeigen eine Warnung erklärt die Benutzer, warum Sie benötigen die Berechtigung oder implementieren Sie einen fallback, wie einige deaktivieren-Funktion.
Hoffe, hilfsbereit zu sein.
Erstellte ich eine Methode für die Erfassung aller Benutzeraktionen, die durch die Nutzung der verketteten if...else if...else und es funktionierte gut für mich.
Erstens, um festzustellen, ob sowohl die Erlaubnis verweigert wurde und die nicht noch einmal Fragen war auch 'abgehakt', kombinierte ich die Erlaubnis den status überprüfen und eine shouldShowRequestPermissionRationale(Manifestieren.die Genehmigung.SEND_SMS).
Dann zu bestimmen, wenn nur die Erlaubnis verweigert wurde, ohne 'tickt' die Frage nicht, auch hier habe ich die Erlaubnis den status überprüfen. Unten snippet: