Ich möchte Längen- und Breitengrade im Android-Emulator zum Testen erhalten.
Kann mir jemand helfen, wie ich das erreichen kann?
Wie setze ich die Position des Emulators auf eine Testposition?
Ich möchte Längen- und Breitengrade im Android-Emulator zum Testen erhalten.
Kann mir jemand helfen, wie ich das erreichen kann?
Wie setze ich die Position des Emulators auf eine Testposition?
Antworten:
Sie können über Telnet eine Verbindung zum Emulator herstellen. Sie haben dann eine Emulatorkonsole, mit der Sie bestimmte Daten wie Geokorrekturen, Netzwerk usw. eingeben können.
Wie die Konsole verwenden ausführlich erklärt hier . Um eine Verbindung zur Konsole herzustellen, öffnen Sie eine Befehlszeile und geben Sie ein
Mit dem Befehl geo können Sie dann auf dem Gerät einen Breiten-, Längen- und bei Bedarf Höhe festlegen, der über den GPS-Standortanbieter an alle Programme übergeben wird. Weitere Anweisungen finden Sie unter dem obigen Link.
Der spezifische Befehl, der in der Konsole ausgeführt werden soll, lautet
Ich fand diese Seite nützlich, um ein realistisches Lat / Lng 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. Diese wird in diesem Artikel ein wenig beschrieben . Ich kann momentan keine bessere Quelle finden.
quelle
geo fix
Befehl ist nur verfügbar, wenn Sieauth
zuerst.Niemand hier erwähnte die eingebaute Lösung des Emulators selbst, daher möchte ich sie für zukünftige Besucher mit visuellen Elementen teilen.
Führen Sie zuerst Ihren Android-Emulator aus und klicken Sie auf die unten gezeigte Menüschaltfläche (3 Punkte):
Wählen Sie dann im linken Bereich Standort aus und ändern Sie die Koordinaten entsprechend Ihren Anforderungen. Nach dem Klicken auf die Schaltfläche " Senden" werden die Änderungen sofort wirksam (ich empfehle Ihnen, Google Maps zum besseren Verständnis zu öffnen).
Android Studio Version: 2.3.3
Darüber hinaus können Sie die GPX-Datei verwenden, damit Ihre verschiedenen Speicherorte in Echtzeit zu Ihrer Anwendung gelangen. Es ist sehr einfach, diese Datei über den Richtungslink von Google Map zu erstellen:
Verwenden Sie die Schaltfläche "GPS / KML laden", um die erstellte Datei in Ihren Emulator zu laden, wählen Sie die Geschwindigkeit und drücken Sie die grüne Wiedergabetaste unten. Die Standorte werden in Echtzeit gesendet (siehe Abbildung unten).
quelle
Ich suchte nach einer besseren Möglichkeit, die GPS-Koordinaten des Emulators einzustellen, als sie zu verwenden
geo fix
die spezifischen Längen- und Breitengradkoordinaten zu und manuell zu bestimmen.Da ich nichts finden konnte, habe ich ein kleines Programm zusammengestellt, das GWT und die Google Maps-API verwendet, um ein browserbasiertes Kartentool zum Festlegen des GPS-Standorts im Emulator zu starten:
Android-GPS-Emulator
Hoffentlich kann es hilfreich sein, anderen zu helfen, die zweifellos auch über diese Schwierigkeit / Frage stolpern.
quelle
ConnectionRefused
Meldung wird angezeigt , wenn ich den GPS-Emulator vor dem Starten des virtuellen Android-Geräts starte. Oben in meinem Browser steht außerdem "Fehler beim Herstellen der Verbindung an Port 5554 ...". Alles funktioniertgeo fix 42,42 42,42 42
Kommas statt Punkte sein.Wenn Sie verwenden
Eclipse
, gehen Sie zuWindow->Open Perspective->DDMS
, geben Sie eins einLocation Controls
und drücken SieSend
.quelle
LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location location = mlocManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
Unable to send command to the emulator
. Irgendeine Idee, warum es nicht funktioniert? Ich verwende die Standard-Nexus 4 AVDFür Android Studio-Benutzer:
Führen Sie den Emulator aus.
Dann geh zu
Tools -> Android ->Android device monitor
Öffnen Sie die
Emulator Control
Registerkarte und verwenden Sie die Positionssteuerungsgruppe.quelle
Angenommen, Sie haben eine Kartenansicht eingerichtet und ausgeführt:
Sie benötigen die folgende Berechtigung in Ihrem Manifest:
Um Scheinkoordinaten von Eclipse an den Emulator zu senden, gehen Sie zum Menü "Fenster", wählen Sie "Ansicht anzeigen"> "Andere"> "Emulatorsteuerung" und Sie können Koordinaten über das angezeigte Emulatorsteuerungsfenster senden.
quelle
runOnFirstFix
? Da dies das Ereignis ist, das ausgelöst wird, wenn das Gerät zum ersten Mal eine GPS-Position empfängt,getMyLocation
sollte es auf jeden Fall einen Wert zurückgeben , falls dies jemals ausgelöst wird .Für den neuen Emulator:
http://developer.android.com/tools/devices/emulator.html#extended
Klicken Sie grundsätzlich auf die Schaltfläche mit den drei Punkten in den Emulator-Steuerelementen (rechts neben dem Emulator), um ein Menü zu öffnen, in dem Sie den Emulator einschließlich der Position steuern können
quelle
1. Android Studio-Benutzer.
Nach dem Ausführen des Emulators gehen Sie zu Extras-> Android-> Android-Gerätemonitor
Klicken Sie in der Gruppe Standortsteuerelemente auf die Registerkarte Emulatorsteuerung ändern.
2. Eclipse-Benutzer.
Wählen Sie zuerst in Eclipse In Menu "Window", dann "Open Perspective" und dann "DDMS". dh Fenster-> Perspektive öffnen-> DDMS.
Sie sehen auf der linken Seite Gerätebedienfeld und auf der rechten Seite sehen Sie verschiedene Registerkarten. Wählen Sie die Registerkarte "Emulatorsteuerung".
Unten sehen Sie die Standortsteuerung. Wählen Sie die Registerkarte "Manuell".
Geben Sie Längen- und Breitengrad in Textfelder ein und klicken Sie auf die Schaltfläche Senden. Die Position wird an Ihren Emulator und die Anwendung gesendet.
3. Telnet verwenden.
Geben Sie im Befehl run Folgendes ein.
Wenn Sie kein Windows verwenden, können Sie einen beliebigen Telnet-Client verwenden.
Verwenden Sie nach dem Herstellen einer Verbindung mit Telnet den folgenden Befehl, um Ihre Position an den Emulator zu senden.
4. Verwenden Sie das browserbasierte Google Maps-Tool
Es gibt ein Programm, das GWT und die Google Maps-API verwendet, um ein browserbasiertes Kartentool zum Festlegen des GPS-Standorts im Emulator zu starten:
Android-GPS-Emulator
quelle
Verwenden des Befehls "geo" in der Emulatorkonsole
So senden Sie Scheinstandortdaten über die Befehlszeile:
Starten Sie Ihre Anwendung im Android-Emulator und öffnen Sie ein Terminal / eine Konsole im Verzeichnis / tools Ihres SDK.
Stellen Sie eine Verbindung zur Emulatorkonsole her:
telnet localhost 5555
(Ersetzen Sie 5555 durch den Port, auf dem Ihr Emulator ausgeführt wird.)Senden Sie die Standortdaten: * geofix, um einen festen geografischen Standort zu senden.
Dieser Befehl akzeptiert einen Längen- und Breitengrad in Dezimalgraden und eine optionale Höhe in Metern. Zum Beispiel:
quelle
Ich habe ein Python-Skript geschrieben, um GPS-Speicherorte über Telnet an den Emulator zu senden. Es definiert einen Quell- und einen Zielort. Es gibt auch einen Zeitversatz, mit dem Sie steuern können, wie lange Koordinaten auf das Gerät übertragen werden. Ein Ort wird einmal pro Sekunde geschoben.
Im folgenden Beispiel bewegt sich das Skript in 120 Sekunden von Berlin nach Hamburg. Ein Schritt / GPS-Standort pro Sekunde mit zufälligen Abständen.
quelle
Ich benutze die Eclipse Plug DDMS-Funktion, um GPS zu senden.
quelle
Unter Linux, wo Kommunikationsports blockiert sind. Navigieren Sie im Terminal zum Ordner "platform-tools"
android sdk
und lösen Sie den folgenden Befehl aus:quelle
In Mac, Linux oder Cygwin:
Das bringt Sie nach Mexiko-Stadt. Ändern Sie Ihren Längen- / Breitengrad / Ihre Höhe entsprechend. Das sollte reichen, wenn Sie nicht an nmea interessiert sind.
quelle
Die folgende Lösung hat bei mir funktioniert - Befehlszeile öffnen und schreiben:
quelle
Mit der neuesten Version von Android Studio 4 und seinem neuen Emulator-Update vom 23.10.2019 wird es endlich einfacher. Starten Sie Ihren Emulator und gehen Sie zu den Emulatorparametern ...> Auf der Registerkarte "Routen" können Sie zwei Punkte auf der Karte von / bis auswählen und eine neue Route mit einer einstellbaren Wiedergabegeschwindigkeit von mehr als 1000 km / h starten!
quelle
Sehen Abrufen des Benutzerstandorts
Schauen Sie unter Bereitstellen von Mock-Standortdaten nach . Sie finden die Lösung dafür.
quelle
Gehen Sie zuerst in den DDMS-Bereich Ihrer Eclipse, als die Emulatorsteuerung zu öffnen. Gehen Sie zum manuellen Abschnitt, stellen Sie lat und long ein und drücken Sie dann die Senden-Taste
quelle
Ich habe versucht, den Geo-Fix für viele Punkte über adb einzustellen, und konnte meine App nicht dazu bringen, GPS-Daten zu sehen. Als ich jedoch versuchte, DDMS zu öffnen, den Prozess meiner App auszuwählen und Koordinaten über die Registerkarte "Emulatorsteuerung" zu senden, funktionierte dies sofort.
quelle
Dalvik Debug Monitor> Wählen Sie Emulator> Registerkarte Emulatorsteuerung> Standortsteuerung.
DDMS - android_sdk / tools / ddms ODER android_sdk / tools / monitor
quelle
Wenn Sie Eclipse verwenden, können Sie mit dem Emulator-Controller Breiten- und Längengrade manuell einstellen und Ihre kartenbasierte App im Emulator ausführen
quelle
Wenn Sie Android Studio (1.3) verwenden:
quelle
Machen Sie einfach Alberto Gaonas Antwort in einer Zeile
5554 ist die in gezeigte Emulator-Portnummer
adb devices
.Es wäre besser gewesen, wenn
adb emu
gearbeitet hätte.quelle
Wenn die oben genannten Lösungen nicht funktionieren. Versuche dies:
Fügen Sie in Ihrer android Manifest.xml die folgenden zwei Links AUSSERHALB des Anwendungs-Tags hinzu, aber natürlich innerhalb Ihres Manifest-Tags
quelle
Ich konnte keinen GPS-Fix für den Emulator erhalten, als der Emulator ein Android-Bild ohne Google-APIs ausführte. Sobald ich das Bild so geändert habe, dass es Google APIs enthält, funktionieren alle hier genannten Möglichkeiten, um ein GPS-Update zu erhalten.
Stellen Sie sicher, dass Sie beim Erstellen von AVD ein Bild mit Google APIs auswählen.
quelle
Die bereits mehrfach erwähnte Antwort zur Verwendung des Shell-Befehls " geo fix ... " ist die richtige Antwort. Wenn Sie jedoch LocationClient.getLastLocation () zum Abrufen Ihrer Daten verwenden, sollten Sie erwähnen, dass dies zunächst nicht funktioniert. Die LocationClient-Klasse verwendet den Google Play Service, um die Koordinaten abzurufen. Für mich begann dies zu funktionieren, nachdem ich die Emulators Maps App einmal ausgeführt hatte. Beim ersten Start werden Sie aufgefordert, Google Apps Zugriff auf Ihren Standort zu gewähren, was meiner Meinung nach den Trick macht.
quelle
Für ein eigenes Projekt habe ich einen Onlinedienst entwickelt, der dem Android-Emulator einen simulierten Standort bereitstellen kann.
Es verwendet Geo-nmea anstelle von Geo-Fix, wodurch Geschwindigkeit, Kurs, genaue Zeit usw. zusätzlich zu nur Lat / Lon eingestellt werden können.
Der Dienst erfordert das Befehlszeilenprogramm nc (netcat) und sonst nichts.
http://www.kisstech.ch/nmea/
quelle
Sie können einen Emulator wie Genymotion verwenden, der Ihnen die Flexibilität gibt, Ihren aktuellen GPS-Standort usw. zu emulieren.
quelle
Für Android Studio gibt es ein Plugin namens "Mock Location Plugin". Mit diesem Plugin können Sie mehrere Punkte emulieren. Eine ausführliche Bedienungsanleitung finden Sie unter folgendem Link: Android Studio. Simulieren Sie mehrere GPS-Punkte mit dem Mock Location Plugin
quelle
Öffnen Sie Android Studio-> Menü Extras-> Android-> Android-Gerätemonitor-> Registerkarte Emulator-> Standortsteuerung-> Stellen Sie den gewünschten Breiten- und Längengrad ein und überprüfen Sie Ihr Projekt nach Bedarf
quelle
In der Sonnenfinsternis:
Möglicherweise müssen Sie das DDMS-Fenster nach unten ziehen. 'Standortsteuerung' befindet sich unter 'Telefonieaktionen' und kann durch eine normal große Konsolenansicht ausgeblendet werden (die Leiste mit Konsole, LogCat usw. deckt sie möglicherweise ab!).
~
quelle