2010-12-01 5 views
0

J'utilise l'android emulator ddms pour simuler des mouvements en utilisant un fichier gpx. Il y a environ 1000 entrées dans le fichier gpx. Cependant, je trouve que ma méthode onLocationChanged n'est déclenchée que quelques fois au cours du fichier entier. Mon code est le suivant ...Tracks de l'émulateur GPS

LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);   

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, myListener); 

myListener = new LocationListener(){ 
public void onLocationChanged(Location location){ 
    double mylat = location.getLatitude(); 
    double mylon = location.getLongitude(); 
    ... 
    } 
... 
} 

Ma compréhension des requestLocationUpdates étant fixée à 1000 est qu'il devrait demander une mise à jour d'emplacement toutes les 1 seconde condition que l'emplacement de plus de 1 m de la précédente. Est-ce correct? Si oui, pourquoi est-ce que je récupérerais seulement quelques-unes des paires lat/lon du fichier gpx? Ne serais-je pas en train de récupérer près de mille? (Les données GPS proviennent d'une personne qui exécute un mouvement constant.)

Répondre

1

Je n'ai pas eu beaucoup de chance d'utiliser les emplacements de l'émulateur en utilisant gpx, kml ou en entrant manuellement les coordonnées lat/long. Dans mon expérience, la définition des minimums de localisation et de distance dans requestLocationUpdates fonctionne bien sur le matériel réel mais pas sur l'émulateur. Si l'utilisation du fichier gpx est uniquement à des fins de test, essayez de définir les contraintes de temps et d'emplacement sur 0 et 0 juste pour voir si elle enregistre maintenant tous les 1000 de vos points dans l'émulateur.

+0

C'était vraiment très, très utile. Quand je l'ai mis à 0,0, je reçois tous les points. Alors ... pour quelqu'un d'autre qui lit ceci: suivez les conseils de Marc. – Ryan