Wenn wir die Erlaubnis des Benutzers auf seinem Telefon fragen, gibt es eine Möglichkeit, das OS informieren, diese Berechtigung nicht erneut zu stellen? Egal, was die Antwort des Benutzers ist.Anfordern von Android-Berechtigungen nur einmal
Antwort
Wenn Sie fragen, die Erlaubnis in irgendeiner Weise, wie im Folgenden in dem Dialog, der offen sein würde, um die Erlaubnis zu bitten, gibt es ein Kontrollkästchen, das es durch Überprüfung OS würden Sie nicht für diese Erlaubnis fragt mehr:
if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
} else {
ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, RC_WRITE_EXTERNAL_STORAGE);
}
}
Nein, tut mir leid. Sie müssen nachverfolgen, ob Sie den Benutzer nach Berechtigungen gefragt haben, und diese Informationen dann verwenden, um festzustellen, ob Sie in Zukunft Fragen stellen oder nicht.
Wenn das Programm nicht "verzweifelt" die Berechtigung benötigt, können Sie SharedPreferences verwenden und eine Variable namens firstTime mit dem booleschen Wert true speichern. Dann checken Sie die onCreate-Methode für diese Variable ein. Wenn es wahr ist, frage die Erlaubnis und setze den Wert auf false und speichere es. Wenn der Benutzer die Anwendung dann erneut ausführt, ist dies nicht die "FirstTime", sodass er nicht mit der Berechtigung dazu aufgefordert wird.
SharedPreferences pref = this.getSharedPreferences("PACKAGE.NAME",MODE_PRIVATE);
Boolean firstTime = pref.getBoolean("firstTime",true);
if(firstTime){
//Ask for permissions here
pref.edit().putBoolean("firstTime",false).apply();
}
Ich hatte diese Idee, aber da der Benutzer OS informieren kann, indem er das Kontrollkästchen im Dialogfeld aktiviert, habe ich mich gefragt, ob es eine Option gibt, diesen Parameter programmgesteuert zu übergeben. – arunwithasmile
- 1. Angular sendet zweimal anfordern einmal modifiziert Header
- 2. Ways „Header“ der Website-Optimierung der Versand per Post anfordern nur einmal
- 3. FileSystemWatcher - nur einmal das Änderungsereignis einmal ausgelöst?
- 4. onActivityResult nur einmal genannt
- 5. Drucken Sie nur Header in Rails anfordern
- 6. Last interact.js nur einmal
- 7. Funktionen, die nur einmal
- 8. Funktion nur Einstellwerte einmal?
- 9. Jquery nur einmal klicken
- 10. anzeigen wc_add_notice nur einmal
- 11. Anfordern von eingegebenen Daten
- 12. RecyclerView.onBindViewHolder nur einmal aufgerufen
- 13. Segue funktioniert nur einmal?
- 14. WCSession funktioniert nur einmal
- 15. setInterval funktioniert nur einmal
- 16. Schleife nur einmal ausgelöst
- 17. Einzelklick funktioniert nur einmal
- 18. onPreviewframe nur einmal aufgerufen
- 19. layoutAnimation funktioniert nur einmal
- 20. AuthorizeAttribute nur einmal aufgerufen
- 21. Einfügen Einträge nur einmal
- 22. jQuery - Nur einmal tun
- 23. Run setUp nur einmal
- 24. onDataChanged nur einmal aufgerufen?
- 25. uilongpressgesture_recognizer Feuer nur einmal
- 26. Fehlermeldung append nur einmal
- 27. Winkelintervall läuft nur einmal
- 28. Timer nur einmal verwenden
- 29. Wie nur einmal
- 30. ScheduledExecutorService feuert nur einmal
Irgendwelche Quellen? Damit kann ich diese Idee klar verwerfen und Workarounds starten. – arunwithasmile
@arunwithasmile: "Irgendwelche Quellen?" - Ich kann Ihnen keine Dokumentation über etwas zeigen, das nicht existiert. – CommonsWare
Ja, Sie haben Recht. Ich habe nur gehofft :) – arunwithasmile