Eine Möglichkeit, Standortkoordinaten über die Befehlszeile abzurufen

10

Ich suche nach einer Befehlszeile oder einer Reihe von Befehlen, mit denen Breiten- und Längengrade auf einem gerooteten Gerät ausgegeben oder aufgelistet werden können.

Ich verbinde mich mit einem Gerät über die ADB-Shell. Ein Weg, der dazu führt, dass die Koordinaten in der Befehlszeile protokolliert werden, ist auch gut für mich.

Erb
quelle

Antworten:

11

Sieht so aus, als gäbe es einen Weg:

adb shell dumpsys location> dumpsys.txt

Dadurch erhalten Sie eine Datei mit allen Informationen zum Standortdienst. Suchen 'Last Known Locations'Sie in dieser Datei nach und Sie sollten etwas sehen wie:

passive: Location[network 92.915479,55.610965 acc=22 et=+1d4h10m34s255ms {Bundle[{noGPSLocation=Location[network 92.915479,55.610965 acc=22 et=+1d4h10m34s255ms {Bundle[{coarseLocation=Location[network 92.918919,55.603997 acc=2000 et=+1d4h10m34s255ms]}]}], networkLocationSource=cached, networkLocationType=wifi, travelState=stationary}]}]

network: Location[network 92.915479,55.610965 acc=22 et=+1d4h10m34s255ms {Bundle[{noGPSLocation=Location[network 92.915479,55.610965 acc=22 et=+1d4h10m34s255ms {Bundle[{coarseLocation=Location[network 92.918919,55.603997 acc=2000 et=+1d4h10m34s255ms]}]}], networkLocationSource=cached, networkLocationType=wifi, travelState=stationary}]}]

Natürlich enthält die Liste einen weiteren Eintrag, wenn Sie den GPS-Anbieter auf dem Gerät aktiviert haben.

Mit Android-Code habe ich versucht herauszufinden, wie Apps den Standort ermitteln, wenn sie LocationManager.getLastKnownLocation () verwenden. Nach einigem Nachfolgen bin ich hier in LocationManagerService gelandet . Dies implementiert getLastLocation und auch eine Dump-Funktion.

Die Koordinaten werden, soweit ich das beurteilen kann, in keiner Datei gespeichert. Sie werden in einer Hashmap gespeichert und für den Befehl dumpsys ausgegeben. Dies erklärt auch, warum bei einer Suche nach Verzeichniserben keine Dateien mit GPS-Informationen angezeigt wurden.

Wenn Sie diese Informationen in einem Standardformat möchten, müssen Sie die App Weg nehmen und mit so etwas wie gehen diese . Diese App exportiert die Informationen in eine GPS- oder KML-Datei, die Sie in geobasierte Apps einspeisen können.

PS: Dies funktioniert auch auf Geräten ohne Rootberechtigung.

Rohan
quelle
1
Für Windows-Benutzer: adb shell dumpsys location > dumpsys.txtAusgabe des Ergebnisses in die Datei.
Andrew T.
Ich versuche, den GPS-Status (aktiv, passiv) über den Emulator zu erkennen. adb shellDie Last Known LocationsInformationen sind immer leer, auch wenn ich GPS manuell aktiviere.
Talha06