12 votes

Pourquoi Android a-t-il tant de mal à se souvenir de la dernière position connue ?

Je n'ai jamais réussi à comprendre comment Android se souvient de son dernier emplacement connu. Il semble se souvenir de la localisation d'il y a plusieurs heures mais pas d'il y a plusieurs secondes. Je pense qu'il est préférable de donner un exemple de ce que je veux dire.

J'étais récemment dans la région de la baie. J'utilisais Google maps sur mon Android et il se trouve que je me trouvais à proximité du campus de Google à Mountain View. J'utilisais les cartes avec le GPS activé et, après un certain temps, j'ai obtenu un verrouillage GPS correct que j'ai utilisé pour naviguer dans la région.

Lorsque je suis retourné à San Francisco plus tard, je l'ai utilisé pour me déplacer dans la ville. Chaque fois que j'activais les cartes, ma position était remise en vue Montagne. Environ 10 secondes plus tard, après avoir obtenu le verrouillage GPS, j'obtenais ma véritable position. Si j'éteignais le téléphone et le rallumais quelques secondes plus tard, la même chose se produisait - il pensait que je me trouvais à un endroit où j'étais quelques heures plus tôt, puis il indiquait ma position réelle. Cela se produit tout le temps : je me souviens de l'endroit où j'étais il y a quelques heures, mais pas de l'endroit où j'étais il y a quelques instants. Une fois que j'ai passé un certain temps dans une zone, celle-ci devient la nouvelle "dernière position connue".

Pourquoi, une fois que j'ai obtenu un verrouillage GPS précis, Android ne l'enregistre-t-il pas comme "dernière position connue" au lieu d'une position antérieure ?

3voto

user4188 Points 498

Il ne s'agit pas d'une réponse complète, mais de quelques informations générales :

  • Votre appareil peut avoir plus d'un fournisseur de localisation, par exemple un fournisseur basé sur le GPS et un fournisseur basé sur les tours de téléphonie mobile qu'il peut voir.
  • Android n'a pas de dernière position connue. Chaque fournisseur de localisation a sa propre dernière position connue.
  • Un lieu possède des paramètres supplémentaires, tels que la précision, le moment où il a été enregistré, ce qui a été enregistré (par exemple, a-t-il une composante d'altitude, etc.).

Cela dépend donc du fournisseur de localisation utilisé par l'application et cela peut dépendre ou même changer en fonction de paramètres dynamiques. Par exemple, au démarrage, l'application peut demander à Android le fournisseur de localisation le plus rapide pour démarrer, puis passer au plus précis pour obtenir progressivement une meilleure position.

2voto

Nat Points 751

Je crois savoir qu'Android utilise des mises à jour de localisation de type grossier et fin et que ces mises à jour peuvent également avoir des mesures de qualité différentes. Il se peut que l'application Google Maps n'ait pas bénéficié d'un signal GPS et Wifi suffisamment long à votre nouvel emplacement pour être d'une qualité suffisante pour être la dernière position connue.

Les documents destinés aux développeurs sont disponibles à l'adresse suivante http://developer.Android.com/guide/topics/location/obtaining-user-location.html donner quelques exemples de modèles pour l'obtention de la localisation des utilisateurs qui pourraient donner une idée de la manière dont cela fonctionne. Mais je suppose que Google Maps, et probablement d'autres cartes, font leur propre truc.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X