134 votes

Fournisseurs de localisation Android - Fournisseur GPS ou réseau ?

Dans mon application, je voudrais déterminer la position actuelle de l'utilisateur. J'ai cependant quelques questions à ce sujet :

  1. Il existe différents fournisseurs de localisation, lequel est le plus précis ? Le fournisseur GPS ou le fournisseur de réseau ?

  2. Dans quelle mesure ces fournisseurs disponibles diffèrent-ils ? Comment fonctionnent-ils ?

  3. Pouvez-vous me fournir quelques extraits de code ou des tutoriels sur la manière de commencer à implémenter la fonctionnalité GPS dans mon application ?

286voto

Vinayak B Points 16555

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).

entrez la description de l'image ici

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

  1. Dernière position: Utilisez lorsque vous voulez connaître la position actuelle une fois.
  2. Demander la localisation en utilisant un écouteur: Utilisez lorsque l'application est à l'écran / à l'avant-plan et nécessite une localisation continue.
  3. 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

--------------------------------------------------------

2 votes

Notez qu'il existe également le fournisseur de localisation fusionné Google Play Services que l'on peut utiliser.

1 votes

Est-il possible de créer votre propre fournisseur de localisation personnalisé ? android.permission.INSTALL_LOCATION_PROVIDER est signé ou système, ce qui signifie que je devrais pouvoir en installer un sur un appareil rooté, n'est-ce pas ?

1 votes

Le fournisseur de localisation fusionnée n'est disponible que pour les API >= 19. Nous devons donc toujours suivre l'ancienne procédure pour les appareils exécutant des versions plus anciennes, n'est-ce pas?

7voto

Otra Points 4346

Le GPS est généralement plus précis que le réseau, mais parfois le GPS n'est pas disponible, vous pourriez donc avoir besoin de passer de l'un à l'autre.

Un bon début pourrait être de consulter le site de développement Android. Ils avaient une section dédiée à la détermination de la position de l'utilisateur et elle contient tous les extraits de code dont vous avez besoin.

http://developer.android.com/guide/topics/location/obtaining-user-location.html

0 votes

@Noman veux-tu obtenir la longitude et la latitude de ta position ?

0 votes

@Scorpio je voulais en fait savoir quelle option est meilleure entre FOURNISSEUR DE RÉSEAU & FOURNISSEUR GPS . . .Otra m'a envoyé un lien en réponse à ma question qui m'a beaucoup aidé...maintenant j'utilise FOURNISSEUR DE RÉSEAU dans mon app :-)

4voto

johndaly Points 100

Il y a quelques excellentes réponses mentionnées ici. Une autre approche que vous pourriez envisager serait d'utiliser certains SDK gratuits disponibles en ligne comme Atooma, tranql et Neura, qui peuvent être intégrés à votre application Android (cela prend moins de 20 minutes pour intégrer). En plus de vous donner la localisation précise de votre utilisateur, cela peut également vous donner de bonnes informations sur les activités de votre utilisateur. De plus, certains d'entre eux consomment moins de 1 % de votre batterie

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X