Je veux obtenir la longitude et la latitude dans l'émulateur Android pour faire des tests.
Quelqu'un peut-il me guider pour y parvenir ?
Comment régler l'emplacement de l'émulateur sur une position de test ?
Je veux obtenir la longitude et la latitude dans l'émulateur Android pour faire des tests.
Quelqu'un peut-il me guider pour y parvenir ?
Comment régler l'emplacement de l'émulateur sur une position de test ?
Vous pouvez vous connecter à l'émulateur via Telnet. Vous disposez alors d'une console d'émulateur qui vous permet d'entrer certaines données comme les coordonnées géographiques, le réseau, etc.
La manière d'utiliser la console est expliquée en détail ici . Pour se connecter à la console, ouvrez une ligne de commande et tapez
telnet localhost 5554
Vous pouvez ensuite utiliser la commande geo pour définir une latitude, une longitude et, si nécessaire, une altitude sur l'appareil, qui seront transmises à tous les programmes utilisant le fournisseur de localisation GPS. Voir le lien ci-dessus pour plus d'instructions.
La commande spécifique à exécuter dans la console est
geo fix <longitude value> <latitude value>
J'ai trouvé ce site utile pour trouver une lat/lng réaliste : http://itouchmap.com/latlong.html
Si vous avez besoin de plus d'une coordonnée, vous pouvez utiliser un fichier kml avec une route également, c'est un peu décrit dans ce document. article . Je ne peux pas trouver une meilleure source pour le moment.
En utilisant Geo Fix, j'ai également défini une latitude et une longitude fictives, mais je n'ai toujours pas trouvé d'emplacement.
J'ai ajouté plusieurs valeurs par telnet et maintenant ça marche. Je ne sais pas pourquoi en entrant deux ou trois valeurs ça ne marchait pas ça marche jusqu'à ce que je ferme l'émulateur et quand je ferme l'émulateur je dois entrer à nouveau les valeurs fictives.
ou un moyen simple d'activer le gps dans l'émulateur et d'aller dans le contrôle de l'émulateur en donnant des valeurs factices de latitude et de longitude et en envoyant, vous obtiendrez ces valeurs dans l'émulateur comme une localisation gps.
Je cherchais un meilleur moyen de définir les coordonnées GPS de l'émulateur qu'en utilisant geo fix
et déterminer manuellement les coordonnées spécifiques de latitude et de longitude.
Incapable de trouver quoi que ce soit, j'ai mis au point un petit programme qui utilise GWT et l'API Google Maps pour lancer un outil cartographique basé sur un navigateur afin de définir la position GPS dans l'émulateur :
J'espère qu'il pourra être utile à d'autres personnes qui se heurteront sans doute elles aussi à cette difficulté/question.
wow, merci ! l'installation a bien fonctionné, mais je n'ai pas réussi à gérer une connexion à l'émulateur -> le journal imprime java.net.ConnectionRefused. ensuite j'ai essayé telnet localhost 5554 (depuis le terminal) et ça a marché quelqu'un d'autre a-t-il testé votre émulateur avec succès sur mac ?
Je ne l'ai pas testé, mais ça a l'air tellement génial que je pense que Google devrait en parler au monde entier. Les idées simples sont toujours les meilleures. Pourquoi personne n'a pensé à ça ?
@ottel142 - Oui, je fonctionne effectivement sur un mac sans ce problème (en utilisant Chrome sur Mavericks). Je vois donc que ConnectionRefused
si je lance l'émulateur GPS avant de lancer le dispositif virtuel Android. En haut de mon navigateur, il est également indiqué "Error making connection on port 5554 ...". Tout fonctionne bien si je clique sur le bouton "Change Emulator Port" pour me reconnecter.
C'est de loin la méthode la plus simple que j'ai vue. Assurez-vous que vous avez configuré votre AVD avec le support GPS, puis dans la perspective DDMS cliquez sur l'émulateur qui est en cours d'exécution sous Devices, choisissez l'onglet Emulator Control dans le panneau central droit, puis en bas se trouve la section Location Controls mentionnée par SteveCav (Using Eclipse Juno 4.2 for Java Developers with the latest ADT). Mon panneau Location Controls était même préchargé avec des données de localisation.
excellente réponse ! fonctionne avec n'importe quel ide parce que ddms fait partie du sdk (votredkfolder/tools/)
Ni cette solution, ni la solution telnet ci-dessus, ne fonctionnaient pour moi. J'essaie d'obtenir mon emplacement de cette façon, mais il est toujours nul. LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location location = mlocManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
En supposant que vous avez une vue de la carte mise en place et en cours d'exécution :
MapView mapView = (MapView) findViewById(R.id.mapview);
final MyLocationOverlay myLocation = new MyLocationOverlay(this, mapView);
mapView.getOverlays().add(myLocation);
myLocation.enableMyLocation();
myLocation.runOnFirstFix(new Runnable() {
public void run() {
GeoPoint pt = myLocation.getMyLocation();
}
});
Vous aurez besoin des autorisations suivantes dans votre manifeste :
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Et pour envoyer des coordonnées fantaisistes à l'émulateur à partir d'Eclipse, allez dans le menu "Window", sélectionnez "Show View" > "Other" > "Emulator control", et vous pouvez envoyer des coordonnées à partir du volet de contrôle de l'émulateur qui apparaît.
J'ai essayé d'utiliser ce système et d'envoyer des valeurs fictives au contrôle de l'émulateur, mais lorsque j'appuie sur le bouton d'envoi, il ne fait rien, aucun message n'apparaît pour confirmer que les valeurs ont été envoyées ou non. Enfin, GeoPoint g= myLocation.getMyLocation() ; renvoie une valeur nulle.
Utiliser la commande "geo" dans la console de l'émulateur
Pour envoyer des données de localisation de simulacre à partir de la ligne de commande :
Lancez votre application dans l'émulateur Android et ouvrez un terminal/console dans le répertoire /tools de votre SDK.
Connectez-vous à la console de l'émulateur :
telnet localhost 5555
(Remplacez 5555 par le port sur lequel tourne votre émulateur)
Envoyez les données de localisation : * geo fix pour envoyer une géolocalisation fixe.
Cette commande accepte une longitude et une latitude en degrés décimaux, et une altitude facultative en mètres. Par exemple :
geo fix -121.45356 46.51119 4392
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.
0 votes
Si vous utilisez Genymotion : stackoverflow.com/questions/30709329/
1 votes
Vous pouvez installer l'une des nombreuses applications de géolocalisation sur le Play Store.