Un moyen d'obtenir les coordonnées de localisation à partir de la ligne de commande

10

Je recherche une ligne de commande, ou une série de commandes qui peuvent vider ou lister la latitude et la longitude sur un appareil rooté.

Je me connecte à un appareil à l'aide du shell ADB. Un moyen qui provoquera l'enregistrement des coordonnées sur la ligne de commande est également bon pour moi.

Erb
la source

Réponses:

11

On dirait qu'il y a un moyen:

adb shell emplacement dumpsys> dumpsys.txt

Cela vous donnera un fichier avec toutes les informations de service de localisation. Dans ce fichier, recherchez 'Last Known Locations'et vous devriez voir quelque chose comme:

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}]}]

Bien sûr, la liste comprendra une autre entrée si le fournisseur GPS est activé sur l'appareil.

En utilisant le code Android, j'ai essayé de savoir comment les applications obtiennent l'emplacement lorsqu'elles utilisent LocationManager.getLastKnownLocation (). Après un peu de suivi, je me suis retrouvé dans LocationManagerService ici . qui implémente getLastLocation ainsi qu'une fonction de vidage.

Pour autant que je sache, les coordonnées ne sont enregistrées dans aucun fichier. Ils sont stockés en mémoire dans une table de hachage et sauvegardés pour la commande dumpsys. Cela explique également pourquoi une recherche de hiérarchie de répertoire n'a révélé aucun fichier avec des informations gps.

Si vous voulez ces informations dans un format plus standard, vous devrez suivre l'itinéraire de l'application et aller avec quelque chose comme ça . Cette application exporte les informations dans un GPS ou un fichier KML que vous pouvez alimenter en applications géo-basées.

PS: Cela fonctionne aussi bien sur un appareil non rooté.

Rohan
la source
1
Pour l'utilisateur Windows: adb shell dumpsys location > dumpsys.txtpour afficher le résultat dans le fichier.
Andrew T.
J'essaie de détecter l' état GPS (actif, passif) via l'émulateur en utilisant adb shell, les Last Known Locationsinformations sont toujours vides même si j'active manuellement le GPS.
talha06