erhält Anwendung erhält Broadcast oder jede Art von Alarm, wenn seine Berechtigung Einstellung von Einstellungen geändert wird? Ich habe ein Szenario, in dem wir eine Art Protokollierung starten, wenn die Anwendung startet und LOCATION GROUP-Berechtigungen hat. Aber wenn Benutzer diese Berechtigung widerrufen, stürzt unsere Anwendung ab. Keine Möglichkeit, die Protokollierung zu stoppen, wenn der Benutzer die Protokollierung abbricht. Diese Protokollierung stammt aus der Bibliothek von Drittanbietern, daher können wir dazwischen auch keine Überprüfung der Zugriffsrechte vornehmen.Broadcast Aktion auf Erlaubnis Änderung in android M
Antwort
empfängt die Anwendung Broadcast oder irgendeine Art von Warnung, wenn ihre Berechtigungseinstellung von Settings geändert wird?
Nicht das ist dokumentiert.
Wenn der Benutzer eine Berechtigung widerruft, die Ihnen zuvor erteilt wurde, wird Ihr Prozess beendet. Wenn Sie das nächste Mal ausführen, werden Sie im Zuge der Berechtigungensprüfung die Berechtigungsänderung erfahren. Wenn der Benutzer eine Berechtigung erteilt, die zuvor verweigert wurde, ist Ihr Prozess nicht beendet. Wenn Sie jedoch erneut checkSelfPermission()
anrufen, werden Sie feststellen, dass Sie Zugriff haben.
Die Lektion hier ist: Cache-Lookup-Ergebnisse nicht zwischenspeichern. Sie scheinen ziemlich billig Anrufe zu sein, also rufen Sie einfach checkSelfPermission()
nach Bedarf.
Wenn Ihr targetSdkVersion
unter 23 ist, wird checkSelfPermission()
nicht helfen, aber Sie sollten falsche Daten werden immer eher als ein SecurityException
. Im Fall von Standortkorrekturen sollten Sie keine Standorte abrufen, wenn der Benutzer Ihre Standortzugriffsberechtigungen widerrufen hat.
Aber wenn der Benutzer diese Berechtigung zwischen unserer Anwendung widerruft stürzt
ich kein Szenario versucht haben, in dem ein Hintergrunddienst ausgeführt wird und der Benutzer widerruft eine Genehmigung. Es sollte Ihren Prozess beenden, und so würden Sie über die Erlaubnis ändern, wenn Ihr Dienst für das nächste Mal ausgeführt wird. Wenn Sie feststellen, dass Ihr Prozess nicht beendet ist, kann dies ein Zeichen für einen Fehler in Android sein.
Eigentlich kann ich die Berechtigung aus den Einstellungen/App widerrufen und dann wieder zu meiner App wechseln. –
Ich habe die Berechtigung widerrufen, und jetzt, wenn ich ps mache, sehe ich den Prozess nicht, aber meine Anwendung ist immer noch in der Liste der letzten Apps und ich kann sie von dort starten. Kann ich es auch aus der Liste der letzten Apps entfernen? –
@SumitShrivastava: "aber meine Anwendung ist immer noch in der letzten Liste der Apps" - sicher. Auf Android 5.0 und höher wird es für immer da sein. "Kann ich es auch aus der Liste der letzten Apps entfernen?" - nicht, wenn der Benutzer die Berechtigungen in den Einstellungen wechselt. Bitte erläutern Sie, welches Problem durch Ihre App im Bildschirm "Übersicht/Zuletzt Apps" verursacht wird. – CommonsWare
- 1. Erlaubnis für Mikrofon auf Android M anfordern
- 2. Android M Anfrage Mehrere Erlaubnis auf einmal
- 3. Erteilen Erlaubnis für EXTERNAL_STORAGE in Android M?
- 4. Android-Benachrichtigung Aktion Broadcast-Sicherheit?
- 5. Android M Erlaubnis Dialog nicht angezeigt
- 6. Android M Run Time Erlaubnis Probleme
- 7. Kann keine Erlaubnis für ACTION_IMAGE_CAPTURE in Android M erhalten
- 8. Android Preview M: Aktivität neu erstellt nach Erlaubnis gewähren
- 9. Erste Fehler beim Anfordern READ_CONTACTS Erlaubnis Android M
- 10. Verstecken Erlaubnispopup in android M/N
- 11. jQuery Änderung Aktion von einer anderen Änderung Aktion
- 12. Internetzugang mit Android M
- 13. Android M Fingerabdruck-Scanner auf Android Emulator
- 14. Absicht Aktion für Netzwerkereignisse in android SDK
- 15. Django Rest-Framework pro Aktion Erlaubnis
- 16. Android Empfangen Broadcast auf Audio Fokus ändern
- 17. Empfangen Sie Broadcast-Nachricht auf Android
- 18. Broadcast-Empfänger empfängt keine SMS in Android?
- 19. Android Intent action.MEDIA_SCANNER_FINISHED broadcast
- 20. Paketinstallationsprogramm stürzt in Android M ab, nachdem ich um Erlaubnis gebeten habe. READ_SMS
- 21. Android TCP Server Broadcast
- 22. Android getSimOperator() stürzt auf die Erlaubnis fehlt
- 23. Android-Benutzer-Erlaubnis, auf das Internet zuzugreifen
- 24. android api23 internet erlaubnis
- 25. Android "Nichterlaubnis Erlaubnis" Fehler
- 26. Wie die „Frage nie wieder“ Wahl in Android M Runtime Erlaubnis Dialog
- 27. SYSTEM_ALERT_WINDOW Chathead mit Android M - App stürzt
- 28. Hören Sie für Screenshot Aktion in Android
- 29. android wifi erlaubnis
- 30. Android Aktion auf Tab-Schalter
Es gibt keine Broadcasts, alles, was Sie tun können, ist zu überprüfen, ob die Berechtigungen gewährt wurden oder nicht – tyczj
Das ist ein bisschen suxors, besonders wenn Sie einen Dienst haben, der im Hintergrund mit einem * erforderlich * ausgeführt wird, aufgefordert und genehmigt Erlaubnis, aber jemand mucks w/Berechtigungen und leugnet es * während * es läuft. Ohne ein Ereignis zu erfahren, dass die Berechtigung geändert wurde, scheint der Dienst normal weiter zu laufen. Es muss der naiv empfohlenen Praxis folgen, nach Berechtigungen für jeden Aufruf der bereits genehmigten Berechtigung zu testen. Es wäre besser, ein Ereignis abzufangen und den Dienst anzuhalten und mit einer erstklassigen Benachrichtigung darauf hinzuweisen, dass die Berechtigung zum Fortsetzen erforderlich ist. – swooby