521 Stimmen

Wie emuliert man den GPS-Standort im Android-Emulator?

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?

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.

472voto

Janusz Punkte 181894

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.

13 Stimmen

Unter Verwendung von geo fix habe ich auch eine falsche Breite und Länge festgelegt und erhalte trotzdem keinen Standort.

0 Stimmen

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.

2 Stimmen

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.

227voto

eden Punkte 5567

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:

Emulator mit Menüschaltfläche

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).

Bildbeschreibung hier eingeben

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:

  1. Gehen Sie zu Google Maps, wählen Sie einen Standort aus und drücken Sie "Wegbeschreibung" und geben Sie den zweiten Standort ein.
  2. Nachdem die Route erstellt wurde, kopieren Sie einen Link aus dem Browser
  3. Gehen Sie auf diese Website: https://mapstogpx.com und fügen Sie den Link in das Feld "Los geht's" ein
  4. Drücken Sie den "Los geht's"-Button und die GPX-Datei wird heruntergeladen

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.

Bildbeschreibung hier eingeben

0 Stimmen

In dieser Lösung benötigen Sie Play-Dienste im Emulator?

0 Stimmen

Ich glaube nicht.

0 Stimmen

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.

120voto

dpdearing Punkte 1686

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:

android-gps-emulator

Hoffentlich kann es anderen helfen, die zweifellos auf diese Schwierigkeit/Frage stoßen werden.

0 Stimmen

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?

1 Stimmen

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?

0 Stimmen

@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.

81voto

SteveCav Punkte 6441

Wenn Sie Eclipse verwenden, gehen Sie zu Fenster->Perspektive öffnen->DDMS, geben Sie dann eine in Standortsteuerungen ein und klicken Sie auf Senden.

8 Stimmen

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.

0 Stimmen

Große Antwort! funktioniert mit jedem IDE, da ddms Teil des SDK (deines SDK-Ordners/Tools/) ist.

1 Stimmen

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);

33voto

ofer Punkte 4085

Für Benutzer von Android Studio:

Führen Sie den Emulator aus,

Gehen Sie dann zu Tools -> Android -> Android Geräte Monitor

Öffnen Sie den Tab Emulatorsteuerung und verwenden Sie die Standortsteuerungsgruppe.

0 Stimmen

In meinem Fall sind alle Felder nicht bearbeitbar. Haben Sie eine Idee?

4 Stimmen

@MustafaOlkun Es bedeutet wahrscheinlich, dass die Emulation selbst diese Steuerelemente hat. Suchen Sie nach einem "..." neben dem Emulator.

3 Stimmen

Ich habe das gleiche Problem. Sie sind nicht bearbeitbar. und ja, da ist das "...". Wenn ich jedoch irgendetwas dort eingebe und sende, ändert sich nichts in der Anwendung....

CodeJaeger.com

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.

Powered by:

X