Uma maneira de obter coordenadas de localização na linha de comando

10

Estou procurando uma linha de comando ou uma série de comandos que podem despejar ou listar a latitude e longitude em um dispositivo raiz.

Eu me conecto a um dispositivo usando o shell ADB. Uma maneira que fará com que as coordenadas sejam registradas na linha de comando também é boa para mim.

Erb
fonte

Respostas:

11

Parece que existe uma maneira:

local dumpsys do adb shell> dumpsys.txt

Isso fornecerá um arquivo com todas as informações do serviço de localização. Neste arquivo, procure 'Last Known Locations'e você deverá ver algo como:

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

Obviamente, a lista incluirá outra entrada se você tiver o provedor de GPS ativado no dispositivo.

Seguindo o código do Android, tentei descobrir como os aplicativos obtêm a localização quando usam o LocationManager.getLastKnownLocation (). Depois de um pouco de acompanhamento, acabei no LocationManagerService aqui . que implementa getLastLocation e também uma função de despejo.

As coordenadas não são armazenadas em nenhum arquivo, tanto quanto eu posso dizer. Eles são armazenados na memória em um mapa de hash e despejados para o comando dumpsys. Isso também explica por que uma pesquisa de hierarquia de diretórios não revelou nenhum arquivo com informações de GPS.

Se você quer esta informação em um formato mais padrão, você terá que tomar a rota aplicativo e ir com algo parecido com isso . Este aplicativo exporta as informações em um arquivo GPS ou KML que você pode alimentar em aplicativos baseados em localização geográfica.

PS: Funciona também em dispositivos sem raiz.

Rohan
fonte
11
Para usuário do Windows: adb shell dumpsys location > dumpsys.txtpara gerar o resultado no arquivo.
Andrew T.
Eu tento detectar o status do GPS (ativo, passivo) através do emulador adb shell, as Last Known Locationsinformações estão sempre vazias, até eu habilito o GPS manualmente.
talha06