Il y a 3 fournisseurs de localisation sur Android.
Ils sont :
gps –> (GPS, AGPS) : Nom du fournisseur de localisation GPS. Ce fournisseur détermine la localisation en utilisant des satellites. Selon les conditions, ce fournisseur peut prendre un certain temps pour retourner une position. Nécessite l'autorisation android.permission.ACCESS_FINE_LOCATION.
network –> (AGPS, CellID, WiFi MACID) : Nom du fournisseur de localisation par réseau. Ce fournisseur détermine la localisation en fonction de la disponibilité des antennes de téléphonie cellulaire et des points d'accès WiFi. Les résultats sont récupérés par le biais d'une recherche sur le réseau. Nécessite l'une des autorisations android.permission.ACCESS_COARSE_LOCATION ou android.permission.ACCESS_FINE_LOCATION.
passive –> (CellID, WiFi MACID) : Un fournisseur de localisation spécial pour recevoir des positions sans initier réellement une fixation de position. Ce fournisseur peut être utilisé pour recevoir passivement des mises à jour de position lorsque d'autres applications ou services les demandent sans demander réellement les positions vous-même. Ce fournisseur renverra des positions générées par d'autres fournisseurs. Nécessite l'autorisation android.permission.ACCESS_FINE_LOCATION, bien que si le GPS n'est pas activé, ce fournisseur peut ne retourner que des positions approximatives. C'est ainsi qu'Android appelle ces fournisseurs de localisation, cependant, les technologies sous-jacentes permettant de faire fonctionner tout cela sont associées à l'ensemble spécifique de capacités matérielles et de services réseau fournis par les opérateurs.
La meilleure façon est d'utiliser d'abord le fournisseur "network" ou "passive", puis de basculer sur "gps", et en fonction de la tâche, de passer entre les fournisseurs. Cela couvre tous les cas, et fournit un service commun minimal (dans le pire des cas) et un excellent service (dans le meilleur cas).
Référence de l'article : Fournisseurs de localisation Android - gps, réseau, passif par Nazmul Idris
Référence du code : https://stackoverflow.com/a/3145655/28557
-----------------------Mise à jour-----------------------
Maintenant Android a le fournisseur de localisation fusionnée
Le fournisseur de localisation fusionnée gère de manière intelligente la technologie de localisation sous-jacente et vous fournit la meilleure localisation selon vos besoins. Il simplifie les façons pour les applications de obtenir la localisation actuelle de l'utilisateur avec une précision améliorée et une consommation d'énergie réduite
Le fournisseur de localisation fusionnée offre trois moyens de récupérer la localisation
- Dernière position: Utilisez lorsque vous voulez connaître la position actuelle une fois.
- Demander la localisation en utilisant un écouteur: Utilisez lorsque l'application est à l'écran / à l'avant-plan et nécessite une localisation continue.
- Demander la localisation en utilisant un intent en attente: Utilisez lorsque l'application est en arrière-plan et nécessite une localisation continue.
Références :
Site officiel : http://developer.android.com/google/play-services/location.html
Exemple de fournisseur de localisation fusionnée : GIT : https://github.com/kpbird/fused-location-provider-example
http://blog.lemberg.co.uk/fused-location-provider
--------------------------------------------------------