21

Sto costruendo un'app per Android che traccia la geolocalizzazione dell'utente e traccia il percorso su una mappa.Quando dovrei usare il permesso ACCESS_COARSE_LOCATION?

Sto utilizzando l'API di posizione dei servizi di Google Play, come descritto in here.

E 'intuitivo che la mia applicazione richiede il permesso ACCESS_FINE_LOCATION, che ho messo nel manifesto:

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

Do Ho anche bisogno il permesso ACCESS_COARSE_LOCATION? Qual è il caso d'uso in cui ho bisogno della posizione grossolana?

+0

'ACCESS_COARSE_LOCATION' include l'autorizzazione solo per' 'Non NETWORK_PROVIDER' GPS' –

+1

@IntelliJAmiya: Sono abbastanza sicuro che tu possa ancora usare il 'GPS_PROVIDER' anche con un permesso grossolano, ma i dati saranno confusi per introdurre una misura di inaccuratezza, per la privacy. – CommonsWare

+0

@CommonsWare Sir. Grazie per le informazioni . –

risposta

31

Ho anche bisogno dell'autorizzazione ACCESS_COARSE_LOCATION?

No.

Qual è il caso d'uso in cui ho bisogno la posizione di massima?

Se non chiedete ACCESS_FINE_LOCATION, ma è necessario dati di localizzazione, e si è disposti a che i dati per essere sfocata (per esempio, fino a circa un isolato dalla posizione dell'utente). Nel caso di LocationManager, è possibile utilizzare solo lo NETWORK_PROVIDER; nel caso del fornitore di posizione fusi di Play Services, dovrebbero gestirlo internamente.

C'era una volta, molto tempo fa, agli utenti è stato detto al momento dell'installazione se l'app desiderava un accesso di localizzazione grossolano o fine. Gli utenti potrebbero accettare app che volevano un accesso grossolano ma rifiutare app che volevano un accesso soddisfacente.

Poiché l'interfaccia utente per questo è cambiata, e gli utenti avrebbero un bel po 'di difficoltà nel determinare se un'app desidera un permesso di localizzazione grossolana o fine, sospetto che la maggior parte degli sviluppatori chieda solo il permesso di localizzazione fine. Detto questo, se sai che la tua app non ha bisogno di quel livello di accuratezza (ad esempio, vuoi la posizione per le previsioni del tempo), chiedere il permesso di localizzazione grossolana è una bella "punta di cappello" nella direzione della privacy e potrebbe rivelarsi utile ancora una volta in futuro.

+3

Ben elaborato. –

+0

Come facciamo a sapere il fornitore di localizzazione in Google Play Service Fused API? Potrebbe provenire da NETWORK_PROVIDER o GPS_PROVIDER. –

+0

@RohitBandil: non si sa quale sarà l'API della posizione fusa. Dì all'API della posizione fusa cosa vorresti. Deciderà da lì. E, AFAIK, se tieni premuto 'ACCESS_COARSE_LOCATION', ti darà risultati" sfocati ". – CommonsWare

3

no non è necessario utilizzare la posizione grossolana.

La posizione approssimativa è per la posizione del provider di rete e la posizione fine è per il provider di GPS e il provider di posizione di rete. la posizione così bella copre entrambi e non è necessario usarne un'altra.

this è un collegamento per il vostro riferimento.

0

posizione può essere determinata in due modi:

Using NETWORK_PROVIDER 
Using GPS_PROVIDER 
  1. Utilizzando NETWORK_PROVIDER

    autorizzazioni Android necessarie per utilizzare questo fornitore sono o ACCESS_COARSE_LOCATION o ACCESS_FINE_LOCATION.

  2. Utilizzando GPS_PROVIDER permessi

    Android necessarie per utilizzare questo fornitore sono solo ACCESS_FINE_LOCATION