web-dev-qa-db-fra.com

Quand devrais-je utiliser l'autorisation ACCESS_COARSE_LOCATION?

Je construis une Android qui permettra de suivre la géolocalisation de l'utilisateur et de tracer son itinéraire sur une carte.

J'utilise l'API de localisation des services Google Play, comme décrit ici .

Il est intuitif que mon application nécessite le ACCESS_FINE_LOCATION _ permission que je mets dans le manifeste:

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

Est-ce que j'ai aussi besoin du ACCESS_COARSE_LOCATION autorisation? Quel est le cas d'utilisation où j'ai besoin de la localisation grossière?

49
Terry

Ai-je également besoin de l'autorisation ACCESS_COARSE_LOCATION?

Non.

Quel est le cas d'utilisation où j'ai besoin de la localisation grossière?

Si vous ne demandez pas ACCESS_FINE_LOCATION, mais vous avez besoin de données de localisation et vous souhaitez que ces données soient floues (par exemple, jusqu’à un bloc de ville à partir de la position de l’utilisateur). Dans le cas de LocationManager, vous ne pouvez utiliser que le NETWORK_PROVIDER; dans le cas du fournisseur d’emplacement fusionné de Play Services, ils doivent gérer cela en interne.

Il était une fois, il y a très longtemps, au moment de l'installation, les utilisateurs étaient informés si l'application souhaitait un accès simplifié ou un emplacement précis. Les utilisateurs peuvent accepter des applications qui veulent un accès grossier, mais les rejeter.

Étant donné que l'interface utilisateur a changé et que les utilisateurs auraient beaucoup de difficulté à déterminer si une application souhaite obtenir une autorisation de localisation approximative ou précise, je suppose que la plupart des développeurs demandent simplement une autorisation de localisation précise. Cela étant dit, si vous savez que votre application n'a pas besoin de ce niveau de précision (par exemple, vous voulez l'emplacement d'une prévision météorologique), demander l'autorisation de localisation approximative est un joli "bout du chapeau" dans le sens de la confidentialité et de la confidentialité. peut s'avérer bénéfique à l'avenir.

63
CommonsWare

Non, vous n'avez pas besoin d'utiliser un emplacement approximatif.

La localisation grossière correspond à la localisation du fournisseur de réseau et la localisation précise au fournisseur GPS et au fournisseur de localisation réseau. Donc, le bon emplacement couvre les deux et vous n'avez pas besoin d'utiliser un autre.

Afin de recevoir les mises à jour d'emplacement de NETWORK_PROVIDER ou GPS_PROVIDER, vous devez demander l'autorisation de l'utilisateur en déclarant l'autorisation ACCESS_COARSE_LOCATION ou ACCESS_FINE_LOCATION, respectivement, dans votre fichier de manifeste Android. Sans ce type d'autorisation, votre application échouer lors de l'exécution lors de la demande de mises à jour d'emplacement.

Si vous utilisez à la fois NETWORK_PROVIDER et GPS_PROVIDER, vous devez uniquement demander l'autorisation ACCESS_FINE_LOCATION, car elle inclut une autorisation pour les deux fournisseurs. L'autorisation relative à ACCESS_COARSE_LOCATION autorise uniquement l'accès à NETWORK_PROVIDER.

This est un lien pour votre référence.

17
Sagar Nayak

L'emplacement peut être déterminé de deux manières:

Using NETWORK_PROVIDER
Using GPS_PROVIDER
  1. Utilisation de NETWORK_PROVIDER

    Les autorisations Android requises pour utiliser ce fournisseur sont ACCESS_COARSE_LOCATION ou ACCESS_FINE_LOCATION .

  2. Utilisation de GPS_PROVIDER

    Les autorisations Android requises pour utiliser ce fournisseur sont uniquement ACCESS_FINE_LOCATION

10
Pinak Gauswami