Mon application utilise LocationListener pour garder une trace de l'emplacement actuel. Tant que le fournisseur GPS fournit des correctifs réguliers, cela fonctionne bien. Cependant, je souhaite que mon application alerte l'utilisateur si l'emplacement n'est plus fiable car le correctif n'est plus à jour. J'ai donc utilisé un timeCheckHandler pour appeler getLastKnownLocation toutes les quelques secondes. Mon problème est que même lorsque des correctifs précis sont reçus fréquemment, le temps renvoyé en appliquant getTime() à l'emplacement renvoyé par getLastKnownLocation est généralement plus ancien que l'heure actuelle renvoyée par System.currentTimeMillis(), souvent de 20 secondes environ. .Problème Android découvrant à quel point le dernier correctif GPS est récent
J'ai étudié le problème plus loin en ajoutant du code à onLocationChanged (arg0) pour consigner l'heure du correctif (arg0.getTime()) et l'heure actuelle (System.currentTimeMillis()). Encore une fois, je vois une différence d'environ 20 secondes.
Le code se lit actuellement comme suit:
public void onLocationChanged(Location arg0) {
mapview.handleLocationChanged(mapview, arg0.getLatitude(), arg0.getLongitude(), arg0.getBearing(), arg0.getAccuracy(), "GPS fix");
addDebugNote("Fix received at time: "+Long.toString(arg0.getTime()/1000)+" Now: "+Long.toString((System.currentTimeMillis())/1000));
}
et sortie typique de mon fichier de débogage lit:
Fix received at time: 1292091908 Now: 1292091928
Pourquoi devrais-je rencontrerai cette différence entre le temps fixe et le temps de système actuel ?
Dois-je accepter qu'une différence d'environ 20 secondes est normale?
J'ai eu le même problème et j'ai ajouté: 'arg0.setTime (System.currentTimeMillis()); 'comme première ligne dans' onLocationChanged (Location arg0) 'méthode pour" corriger "l'horodatage. Je ne suis pas sûr si cela va créer des effets secondaires plus tard – ApollonDigital