2016-07-28 29 views
1

Ich arbeite mit Berechtigungen und versuche, das Aufrufen von Berechtigungen mit Berechtigungen einfacher zu machen als die Abfrage, ob jedes Mal Berechtigungen vorhanden sind ...In welchen Fällen kann der Benutzer Berechtigungen (Laufzeit) widerrufen? (in Activity Lifecycle)

Benutzer kann Berechtigungen widerrufen, wenn sie einmal gefragt werden - als es ist klar, wie man damit umgeht, aber das Problem ist, wenn Benutzer in app-Menü geht (während App-Arbeit) und widerruft gegebene Berechtigungen ...

Ich gehe davon aus, dass es nur 2 Möglichkeiten gibt, Berechtigungen zu widerrufen: 1 - wenn Benutzer wird nach ihnen gefragt und weigert sich zu gewähren 2 - wenn Benutzer auf die Menü- und App-Einstellungen schaltet Erlaubnis

Die Frage ist: Gibt es eine andere Möglichkeit, Berechtigungen zu widerrufen? Kann eine andere App (oder was auch immer) im Hintergrund Berechtigungen (jederzeit?) Ohne unser Wissen widerrufen, wenn sich unsere App im Status "Fortgesetzt" befindet?

Ich frage, als ob es die einzigen 2 Szenarien, die wir wissen werden, dass App nicht Berechtigungen verlieren kann, ohne onPause() (zum Menü zu gehen oder anzuzeigen auf Berechtigungen oben zu gewähren Dialog). Es würde uns in die Lage versetzen, nicht immer wieder nach Berechtigungen zu fragen, bis onPause() aufgerufen wurde.

+0

Afaik, die einzigen Möglichkeiten, die Berechtigungen zu widerrufen, sind die beiden, die Sie erwähnt haben. – Vucko

Antwort

0

Andere Apps können die Berechtigungen Ihrer App nicht ändern.

Wenn Sie berücksichtigen müssen, dass Benutzer sie manuell über App-Einstellungen umschalten, müssen Sie möglicherweise Berechtigungen jedes Mal überprüfen, wenn Sie eine API verwenden, die diese Berechtigungen erfordert.

Bitte beachten Sie auch, dass die Berechtigungen geändert signifikant mit API 23.

0

Ich weiß, dass API 23 die Laufzeit-Berechtigungen eingeführt - das ist der Fall des Themas ...

OK, also Sie sagen, Dass keine andere App meine App-Berechtigungen ändern kann, bedeutet, dass es keine Möglichkeit gibt, sie zu widerrufen, bevor onPause() aufgerufen wird. Was ist, wenn ich eine globale boolesche Überprüfung einstellen werde, wenn onPause() aufgerufen wurde? Wenn nicht gesetzt (keine onPause() wurde aufgerufen) Ich würde nicht Berechtigungen überprüfen müssen vor dem Aufruf von Sachen erfordert es, wie ich annehme, es gibt keine Möglichkeit Berechtigungen widerrufen:>

Ich nehme an Android Studio wird mich warnen zu fragen wie auch immer, aber ich denke, dass es einen Weg geben, der Warnung loszuwerden ... er den Code vereinfachen würde

if (calledOnPause) {// do Berechtigungsprüfungen ... } // sonst rufen Sie nur Methoden, die die Berechtigungen erfordern

Ich denke, dass nur das Überprüfen des Booleschen Zustandes wäre einfacher als das Durchführen eleganter Berechtigungsprüfungen.

Gibt es etwas gegen meine Idee?