Incapable de simuler les données de localisation dans l'émulateur Android
Je suis en train de tester mon application, qui utilise la géolocalisation à l'aide de l'émulateur. Plusieurs méthodes sont décrites ici. Je vais Window->Open Perspective->DDMS
, puis en entrant lat. et longue. l'un dans Location Controls
et puis j'ai frappé "Envoyer".
Mais ça ne fonctionne pas. Au lieu de cela, je vois le message d'erreur suivant: Unable to send command to the emulator.
Pourquoi est-ce qui se passe!?
Je ne pense pas que mon application est le problème parce que j'ai testé avec l'émulateur par défaut du navigateur et il ne peut également accéder à des informations de localisation.
Détails:
- OSX 10.9.4
- AVD_for_Nexus_4_by_Google ciblage v4.4.2
- Eclipse IDE pour Développeurs Android 23.0.2.1259578
Mise à jour:
J'ai changé pour AVD_for_Galaxy_Nexus_by_Google
et cela ne fonctionne toujours pas, mais je ne vois plus cette erreur. Je clique sur envoyer rien ne se passe.
Update2:
Je l'ai testé à l'aide de Telnet pour transmettre les données de localisation de l'émulateur, et encore, rien ne se passe. Pas d'erreurs. Tout simplement rien. Urgh!
telnet localhost 5554
geo fix 50 50
Il répond avec OK
mais rien ne se passe. Toujours pas de données disponibles.
Update3:
Je remarque un courant de la suite des erreurs dans le LogCat
09-20 17:58:59.910: E/eglCodecCommon(1777): glUtilsParamSize: unknow param 0x00000b44
09-20 17:58:59.910: E/eglCodecCommon(1777): glUtilsParamSize: unknow param 0x00000bd0
09-20 17:58:59.930: E/eglCodecCommon(1777): **** ERROR unknown type 0x0 (glSizeof,72)
L'application semble être en cours d'exécution fine, et ces erreurs sont censés être expliqué ici.
Mise à jour 4:
J'ai vu plusieurs suggestions pour confirmer que mon AVD a Support GPS activé, mais cette option/paramètre n'apparaissent pas n'importe où. Quand j'ai ouvert le "Android Virtual Device Manager" puis cliquez sur "Modifier" sur l'un de mes appareils, c'est ce que je vois:
Pas de mention de "GPS".
Mise à jour 5:
J'ai vérifié la config.fichier ini pour tous mes AVDs et ils sont tous correctement mis à hw.gps=yes
. J'ai également créé un AVD à l'aide d'un API Google cible, mais je suis toujours le même problème. L'application se charge, mais aucune information n'est disponible, avec "Location de Contrôles", ainsi que telnet.
Mise à jour 6:
Suivant Gyebro les suggestions ci-dessous... en essayant de charger son LocationDemo app...
Voici ce que je vois dans le LogCat:
yourLocationClient.getLastLocation()
de retour avec null
? Êtes-vous à la mise en œuvre de LocationListener
? Quelque chose pourrait interférer avec votre émulateur de port (5554)? Avez-vous essayé d'Android Studio (et de son Appareil Android Moniteur)?Il n'y a pas d'emplacement de l'auditeur. Comme pour
yourLocatoinClient
, je suis très nouveau développement Android donc je ne suis pas sûr de ce qui est. Si vous me donner des instructions, je vais tester. Je n'ai pas essayé d'Android Studio, mais j'ai essayé avec Genymotion plugin et il ne fonctionne TOUJOURS pas.Il suffit de vérifier si votre AVD a ces paramètres: AVD -> Matériel> New -> support GPS -> "Oui"
Je ne vois pas cette option. À partir d'Eclipse. j'ai ouvert le "Android Virtual Device Manager" et il montre une liste de AVDs mais "GPS" sur le terrain.
*pas de "Support GPS" champ
OriginalL'auteur emersonthis | 2014-09-20
Vous devez vous connecter pour publier un commentaire.
Pour vérifier si votre émulateur supporte le GPS, aller à
~/.android/avd/<emulatorname>.avd/
et vérifierconfig.ini
ethardware-qemu.ini
(s'il existe) ils doivent contenir:MODIFIER
Vous devez utiliser un Api Google image système. Vous devez définir
Google APIs - API Level 1#
comme cibleFin de l'EDIT
En supposant que cela est ainsi, et l'Emplacement est activé dans votre émulateur, exécutez cette application de test dans votre émulateur: LocationTest démo, pour les détails, voir le Dev docs sur la Récupération de l'Emplacement Actuel
Cet exemple met en œuvre
GooglePlayServicesClient.ConnectionCallbacks
,GooglePlayServicesClient.OnConnectionFailedListener
etLocationListener
. Et vérifie aussi pour les Google Play Services avant la connexion avec le LocationClient (c'est pourquoi nous avons besoin d'un Google Émulateur image.) (Voir MainActivity.java)Après le démarrage de l'application, vous devriez voir l'Emplacement de l'icône dans la barre d'état. Vérifiez également que le GP Services sont présents et le LocationClient est connecté dans le Journal.
Après l'envoi de
geo fix 66 80
à l'aide de telnet (pour répondre àOK
) ou d'autres valide coordonnées à l'aide de DDMS, vous devriez voir:Si vous êtes toujours perdu avec cette approche, une autre façon de simuler des endroits créer une Maquette Fournisseur d'Emplacement app.
hw.gps=yes
. Voir mon mise à Jour 5 ci-dessus. Je suis lent travailler avec Eclipse, donc je n'ai pas essayé l'Emplacement Tester encore... mais je ne suis pas sûr de ce que c'est à tester. Je sais que le GPS n'est pas disponible parce que je peux utiliser le navigateur internet par défaut de visiter une page qui demande des données de géolocalisation et ça ne fonctionne pas. Dois-je procéder à l'Emplacement d'Essai?J'ai vraiment suggérons d'essayer cette petite démo de l'application (une seule activité, en plus de certains des autorisations dans le AndroidManifest). J'ai essayé html5demos.com/geo avec l'Émulateur du navigateur et il ne fonctionne pas. (Peut-être qu'il lit le dernier emplacement. Pas de lieu, l'icône apparaît dans la barre d'état)
Après j'ai demandé emplacement de mise à jour avec l'application de test, html5demos.com/geo parvient à obtenir l'emplacement. (Toutefois, il ne demande pas d'emplacement de mise à jour de lui-même.)
C'est intéressant! Dans ma quête pour comprendre cela, j'en ai entendu d'autres histoires à propos de géolocalisations ne fonctionne pas jusqu'à ce que quelque chose d'autre déclenchée. Je vais essayer l'application dès que possible.
J'espère que vous allez réussir!
OriginalL'auteur Gyebro
Vous devriez vraiment utiliser GENYMOTION il dispose d'une fonctionnalité GPS qui u définir les coordonnées de l'emplacement, et il est plus rapide que celle par défaut de l'émulateur et fonctionne très bien dans presque tous les OS, heres les Docus sur la façon d'appliquer des GPS trucs ici à l'intérieur de la page rechercher "widget". Bonne chance.
Heres un coup de feu à partir de cette fenêtre
OriginalL'auteur Eefret
J'ai essayé avec la dernière version du SDK et de la bad outils, je vois le même problème avec Google Maps et Google navigateur web en fonction de l'emplacement (maps.google.com). J'ai utilisé de la bad ligne de commande ainsi que telnet méthodes pour définir l'emplacement. Aussi vérifié mes .avd fichier a
hw.gps=yes
(qui est définie par défaut). J'ai même essayé avec les anciennes API Google images. J'ai fait en sorte d'essayer différents niveaux de précision trop - appareil seulement, de grande précision, etc. Je remarque que beaucoup de graphiques à des problèmes de rendu et un bon nombre d'opengl messages d'erreur dans le logcat, semblables à celles que vous voyez.Je n'ai obtenir de l'application google maps pour travailler sur émulateur Android à l'aide de faux emplacements fonctionnalité. Vous pouvez utiliser des faux emplacements sur un périphérique réel trop, que je préfère pour sa performance. Pour plus de détails sur comment utiliser l'emplacement maquette veuillez voir cette.. Télécharger le fichier zip qui a LocationProvider projet , qui permet de simuler différentes emplacement et le mouvement des scénarios.
sorte que vous pouvez choisir:
J'ai eu du succès avec genymotion trop, vous pouvez définir n'importe quel endroit que vous voulez à partir de la ligne de commande
genyshell
qui vient avec genymotiongenyshell.exe -c "gps setstatus enabled"
genyshell.exe -c "gps setlatitude 30.3077609"
genyshell.exe -c "gps setlongitude -97.7534014"
appareil est préférable pour des raisons de performances.
Mise à jour:
J'ai testé avec LocationTest démo par gyebro et il fonctionne quand je l'emplacement params à l'aide de telnet. Donc le problème semble être avec google maps ou le navigateur et non pas avec l'émulateur ou bad outils.
OriginalL'auteur ashoke
Avez-vous essayé avec la version gratuite de Genymotion? Il fonctionne comme un véritable appareil connecté en USB, et il peut créer des positions GPS que vous en avez besoin. Je sais que ce n'est pas une solution pour votre AVD problème, mais AVD est généralement une mauvaise solution pour Android tests sur les émulateurs.
C'est gratuit si vous souhaitez tester cette fonction en particulier.
Eh bien, genymotion est un émulateur génial. c'est une honte qu'il ne fonctionne pas
Genymotion est pas plus libre!
OriginalL'auteur noni
Je courais à travers les mêmes erreurs. Le problème était que l'AVD DDMS utilise une virgule au lieu d'un point dans leurs coordonnées.
Utilisation LAT: -16,691534 GNL: -49,266185 quelque chose comme ça et tout ira bien!
OriginalL'auteur Gustavo Baiocchi Costa
Assurez-vous que votre AVD a GPS de soutien matériel à vrai
Créer de Nouveaux AVD > Matériel > Nouveau > support GPS
Valeur doit être "oui"
Également, vous assurer que votre application demande l'emplacement des mises à jour, d'une certaine façon, sinon l'émulateur va simplement ignorer tous les emplacements de DDMS ou de la console.
(ou)
Je viens d'utiliser la console android via telnet, il fonctionne toujours.
Il suffit d'ouvrir une ligne de commande:
5554 est le numéro de port de votre émulateur, il est généralement, mais peut changer, il peut être sur la fenêtre de fram de l'émulateur comme PORT:AVD_NAME.
Vous serez accueilli avec un Android message de la console.
Pour envoyer les positions de votre appareil de type.
Deux déclarations valables serait
Espère que cette aide, ce n'est pas DDMS, mais il fonctionne toujours. Vous pouvez également nourrir les phrases nmea, mais je ne pense pas que vous avez besoin que.
New AVD > Hardware > New > GPS support
Pouvez-vous vérifier si vous utilisez la même version que moi?Voir mise à Jour 5 ci-dessus.
OriginalL'auteur Sandeep Kumar