21

Ich baue eine Android-App, die die Geolokalisierung des Benutzers verfolgt und deren Route auf einer Karte zeichnet.Wann sollte ich die ACCESS_COARSE_LOCATION-Berechtigung verwenden?

Ich verwende die Google Play Services-Standort-API wie beschrieben here.

Es ist intuitiv, dass meine Anwendung die ACCESS_FINE_LOCATION Genehmigung erfordert, die ich im Manifest setzen:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 

Brauche ich auch die ACCESS_COARSE_LOCATION Erlaubnis? Was ist der Anwendungsfall, wo ich den groben Ort brauche?

+0

'ACCESS_COARSE_LOCATION' beinhaltet die Erlaubnis nur für' NETWORK_PROVIDER' Nicht 'GPS' –

+1

@IntelliJAmiya: Ich bin mir ziemlich sicher, dass Sie den 'GPS_PROVIDER' auch mit nur grober Erlaubnis benutzen können, aber die Daten werden unscharf gemacht, um ein Maß an Ungenauigkeit einzuführen, für die Privatsphäre. – CommonsWare

+0

@CommonsWare Sir. Vielen Dank für Ihre Informationen . –

Antwort

31

Benötige ich auch die ACCESS_COARSE_LOCATION-Berechtigung?

Nr

Was ist der Anwendungsfall, wo ich die grobe Lage brauchen?

Wenn Sie fragen nicht nach ACCESS_FINE_LOCATION, aber Sie müssen Standortdaten, und Sie sind bereit, für die Daten fuzzy sein (sagen wir, bis zu etwa einem Häuserblock von der Position des Benutzers). Im Fall von LocationManager können Sie nur die NETWORK_PROVIDER; Im Falle des fusionierten Standortanbieters von Play Services sollten sie dies intern behandeln.

Es war einmal, lange vor langer Zeit, Benutzer wurde zur Installationszeit gesagt, ob die App groben oder feinen Standort Zugriff wollte. Benutzer akzeptieren möglicherweise Apps, die einen groben Zugriff erfordern, aber Apps, die einen guten Zugriff erfordern, werden abgelehnt.

Da sich die UI dafür geändert hat und die Benutzer ein gewisses Maß an Schwierigkeiten haben, zu bestimmen, ob eine App grobe oder genaue Standorterlaubnis will, vermute ich, dass die meisten Entwickler nur nach einer genauen Standortgenehmigung fragen. Wenn Sie jedoch wissen, dass Ihre App diese Genauigkeit nicht benötigt (z. B. wenn Sie den Standort für eine Wettervorhersage benötigen), ist die Frage nach einer groben Standortgenehmigung ein nettes "Tipp" in Richtung Privatsphäre und könnte sich in Zukunft wieder als nützlich erweisen.

+3

Gut ausgearbeitet. –

+0

Woher kennen wir den Standortanbieter in Google Play Service fusionierter API? Es kann von NETWORK_PROVIDER oder GPS_PROVIDER stammen. –

+0

@RohitBandil: Sie wissen nicht, was die fusionierte Standort-API verwenden wird. Sie teilen der fusionierten Standort-API mit, was Sie möchten. Es wird von dort entscheiden. Und, AFAIK, wenn Sie nur 'ACCESS_COARSE_LOCATION' halten, gibt es Ihnen" unscharfe "Ergebnisse. – CommonsWare

3

Nein, Sie müssen nicht grobe Position verwenden.

Grobe Position ist für den Standort des Netzwerkanbieters und die genaue Position ist sowohl für den GPS-Provider als auch für den Netzwerkstandortanbieter. so gut, dass die Lage beide abdeckt und Sie keine andere benutzen müssen.

this ist ein Link für Ihre Referenz.

0

Ort kann durch zwei Arten bestimmt werden:

Using NETWORK_PROVIDER 
Using GPS_PROVIDER 
  1. Mit NETWORK_PROVIDER

    Android Berechtigungen für die Nutzung dieses Anbieters benötigt entweder ACCESS_COARSE_LOCATION oder ACCESS_FINE_LOCATION.

  2. Mit GPS_PROVIDER

    Android Berechtigungen für die Nutzung dieses Anbieters benötigt nur ACCESS_FINE_LOCATION