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.
adb shell dumpsys location > dumpsys.txt
para gerar o resultado no arquivo.