Ist Google Play Service eine Art „Umgehung“ meiner App-Autorisierungen?

Die Tag-Info von besagt, dass es sich um "eine Bibliothek handelt, die von Google-Apps und vielen Drittanbieter-Apps verwendet wird, um Standort- und soziale Funktionen bereitzustellen".

Bedeutet dies, dass, wenn ich mich weigere, einer App den Standort bereitzustellen, die besagte App trotzdem meinen Standort über die Google Play-Dienste abrufen kann?

Ich bin kein Android-Entwickler, aber Apps können normalerweise Informationen über Absichten austauschen und benötigen daher keine ausdrückliche Erlaubnis. Wenn Sie davon ausgehen, kann Ihr Zweifel definitiv Realität sein.

Antworten (2)

Nach meinem Verständnis gibt es zwei Möglichkeiten, den aktuellen Standort aus der Perspektive eines Android-Entwicklers abzurufen:

  1. Die Android-Framework-Location-API: android.locationDies ist "der alte Weg", und Entwickler werden ermutigt, die neuere API anzupassen:

  2. Die Standort-API der Google Play-Dienste.

Um auf Ersteres zuzugreifen, muss eine Anwendung Berechtigungen zu ihrer Verwendung anfordern :

Sofern nicht anders angegeben, erfordern alle Standort-API-Methoden die Berechtigungen ACCESS_COARSE_LOCATION oder ACCESS_FINE_LOCATION.

Um auf Letzteres zuzugreifen, müssen Entwickler immer noch dieselben Berechtigungen anfordern :

Apps, die Standortdienste verwenden, müssen Standortberechtigungen anfordern. Android bietet zwei Standortberechtigungen: ACCESS_COARSE_LOCATION und ACCESS_FINE_LOCATION. Die von Ihnen gewählte Berechtigung bestimmt die Genauigkeit des von der API zurückgegebenen Standorts. Wenn Sie ACCESS_COARSE_LOCATION angeben, gibt die API einen Standort mit einer Genauigkeit zurück, die ungefähr einem Stadtblock entspricht.

Also, nein, der Dienst bietet keine Möglichkeit, Berechtigungsprüfungen zu umgehen. Beide Wege erfordern die gleichen Berechtigungen.

Nein, die Dienste/Bibliotheken benötigen wie alles andere immer noch Berechtigungsanfragen.

Weitere Informationen finden Sie in der Play Services SDK-Dokumentation . Aber einige relevante Auszüge:

... Nachdem Sie die APIs deklariert haben, die Sie verwenden möchten ... stellen Sie sicher, dass Sie die erforderliche Berechtigung haben, bevor Sie eine API aufrufen.

...

Wenn der Aufruf „false“ zurückgibt, bedeutet dies, dass die Berechtigungen nicht erteilt wurden und Sie sie verwenden sollten, um requestPermissionssie anzufordern.

... wenn Sie anrufen connect(), überprüfen die Google Play-Dienste, ob alle erforderlichen Berechtigungen vorhanden sind. ... connect()schlägt fehl, wenn Berechtigungsgruppen fehlen, die von den Google Play-Diensten selbst benötigt werden.

Nun, Sie bestätigen irgendwie meine Befürchtungen ... Wenn ich einer App die Erlaubnis verweigere, aber Google Play Services hat sie, sagen Ihre Zitate, dass sie unabhängig handeln und daher die Umgehung tatsächlich existiert. Wenn nicht, würden Sie erklären, wie? Vielen Dank trotzdem, dass Sie sich die Zeit genommen haben, dies in der SDK-Dokumentation nachzuschlagen.
Soweit ich das beurteilen kann, ist es immer noch per App. Der Aufruf zur Anforderung der Berechtigung kommt von der App, da sich die Bibliothek zum Aufrufen von Play Services immer noch im App-Kontext befindet. Obwohl ich dies noch nicht durch Tests bestätigt habe ... könnte ich die Dokumentation falsch interpretieren?