Ich möchte Längen- und Breitengrade im Android-Emulator für Tests erhalten.
Kann mir jemand erklären, wie ich das erreichen kann?
Wie setze ich den Standort des Emulators auf eine Testposition?
Ich möchte Längen- und Breitengrade im Android-Emulator für Tests erhalten.
Kann mir jemand erklären, wie ich das erreichen kann?
Wie setze ich den Standort des Emulators auf eine Testposition?
Sie können über Telnet eine Verbindung zum Emulator herstellen. Sie haben dann eine Emulator-Konsole, die es Ihnen ermöglicht, bestimmte Daten wie Geo-Fixes, Netzwerk usw. einzugeben.
Wie man die Konsole verwendet, wird hier ausführlich erklärt. Um eine Verbindung zur Konsole herzustellen, öffnen Sie eine Befehlszeile und geben Sie ein
telnet localhost 5554
Dann können Sie den Geo-Befehl verwenden, um eine Breitengrad, Längengrad und falls erforderlich eine Höhe auf dem Gerät festzulegen, die an alle Programme übergeben wird, die den GPS-Standortanbieter verwenden. Weitere Anweisungen finden Sie unter oben genanntem Link.
Der spezifische Befehl, der in der Konsole ausgeführt werden muss, ist
geo fix
Ich fand diese Website nützlich, um einen realistischen Breiten- und Längengrad zu finden: http://itouchmap.com/latlong.html
Wenn Sie mehr als eine Koordinate benötigen, können Sie auch eine KML-Datei mit einer Route verwenden, was in diesem Artikel ein wenig beschrieben ist. Ich finde momentan keine bessere Quelle.
Unter Verwendung von geo fix habe ich auch eine falsche Breite und Länge festgelegt und erhalte trotzdem keinen Standort.
Das Hinzufügen vieler Werte über Telnet funktioniert jetzt... ich weiß nicht, warum es nicht funktioniert hat, als ich nur zwei oder drei Werte eingegeben habe... es funktioniert, solange ich den Emulator nicht schließe. Wenn ich den Emulator schließe, muss ich wieder Scheinwerte eingeben.
Oder einfach den GPS im Emulator einschalten und zu Emulator Control gehen, Dummy-Längen- und Breitenwerte eingeben und senden. Du bekommst diese Werte im Emulator als GPS-Standort.
Hier hat niemand die eingebaute Lösung des Emulators erwähnt, also möchte ich sie für zukünftige Besucher gerne mit visuellen Elementen teilen.
Zuerst starten Sie Ihren Android-Emulator und klicken auf die Menüschaltfläche (3 Punkte), die unten angezeigt wird:
Wählen Sie dann im linken Bereich Standort aus und ändern Sie die Koordinaten entsprechend Ihren Bedürfnissen. Nachdem Sie auf die Schaltfläche Senden gedrückt haben, werden die Änderungen sofort wirksam (ich empfehle, Google Maps zur besseren Verständnis zu öffnen).
Android Studio Version: 2.3.3
Zusätzlich können Sie für die Echtzeitübertragung verschiedener Standorte in Ihre Anwendung eine GPX-Datei verwenden. Es ist sehr einfach, diese Datei aus einem Google Maps-Richtungslink zu erstellen:
Verwenden Sie die Schaltfläche "GPS/KML laden", um die erstellte Datei auf Ihren Emulator zu laden, wählen Sie die Geschwindigkeit und drücken Sie die grüne Wiedergabe-Schaltfläche unten. Standorte werden in Echtzeit übertragen, wie unten auf dem Bild gezeigt.
Wenn ich die App im Emulator öffne, ist der Google API-Client null, sodass ich die Karte im Emulator nicht laden kann. Auf dem mobilen Gerät funktioniert es für mich jedoch.
Ich habe nach einer besseren Möglichkeit gesucht, die GPS-Koordinaten des Emulators zu setzen, als geo fix
zu verwenden und die spezifischen Breiten- und Längengradkoordinaten manuell zu bestimmen.
Nachdem ich nichts gefunden habe, habe ich ein kleines Programm zusammengestellt, das GWT und die Google Maps API verwendet, um ein browserbasiertes Kartenwerkzeug zu öffnen, um den GPS-Standort im Emulator festzulegen:
Hoffentlich kann es anderen helfen, die zweifellos auf diese Schwierigkeit/Frage stoßen werden.
Wow, danke! Die Einrichtung hat wunderbar funktioniert, aber ich konnte keine Verbindung zum Emulator herstellen -> Das Protokoll druckt java.net.ConnectionRefused. Dann habe ich versucht, telnet localhost 5554 (von Terminal) und es hat funktioniert.. Hat sonst noch jemand Ihren Emulator erfolgreich auf dem Mac getestet?
Ich habe es nicht getestet, aber das sieht so großartig aus, dass ich denke, Google sollte es der Welt mitteilen. Einfache Ideen sind immer die besten. Warum hat das niemand bedacht?
@ottel142 - Ja, ich benutze tatsächlich einen Mac ohne dieses Problem (mit Chrome auf Mavericks). Ich sehe jedoch die ConnectionRefused
Meldung, wenn ich den GPS-Emulator starte, bevor ich das Android-Virtualgerät starte. Oben in meinem Browser steht auch "Fehler bei der Verbindung auf Port 5554 ...". Alles funktioniert einwandfrei, wenn ich auf die Schaltfläche "Emulator-Port ändern" klicke, um erneut eine Verbindung herzustellen.
Dies ist mit Abstand die einfachste Methode, die ich gesehen habe. Stellen Sie sicher, dass Sie Ihren AVD mit GPS-Unterstützung einrichten, dann klicken Sie in der DDMS-Perspektive auf den Emulator, der unter Geräte läuft, wählen Sie den Emulator Control-Tab im mittleren rechten Bereich und unten befindet sich der Abschnitt Location Controls, den SteveCav erwähnt hat (Verwendung von Eclipse Juno 4.2 für Java-Entwickler mit den neuesten ADT). Mein Location Controls-Panel war sogar bereits mit Standortdaten vorgeladen.
Große Antwort! funktioniert mit jedem IDE, da ddms Teil des SDK (deines SDK-Ordners/Tools/) ist.
Das hat bei mir auch nicht funktioniert, ebenso wie die Telnet-Lösung oben. Ich versuche, meinen Standort wie folgt zu erhalten, aber es ist immer noch null. LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location location = mlocManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
@MustafaOlkun Es bedeutet wahrscheinlich, dass die Emulation selbst diese Steuerelemente hat. Suchen Sie nach einem "..." neben dem Emulator.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
0 Stimmen
Wenn Sie Genymotion verwenden : stackoverflow.com/questions/30709329/…
1 Stimmen
Sie können eine der vielen gefälschten Standort-Apps im Play Store installieren.