Wygląda na to, że istnieje sposób:
adb shell lokalizacja dumpsys> dumpsys.txt
Otrzymasz plik ze wszystkimi informacjami o usłudze lokalizacji. W tym pliku wyszukaj 'Last Known Locations'
i powinieneś zobaczyć coś takiego:
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}]}]
Oczywiście lista będzie zawierać inną pozycję, jeśli w urządzeniu jest włączony dostawca GPS.
Korzystając z kodu Androida, próbowałem dowiedzieć się, w jaki sposób aplikacje uzyskują lokalizację, gdy używają LocationManager.getLastKnownLocation (). Po kilku obserwacjach znalazłem się tutaj w LocationManagerService . która implementuje getLastLocation, a także funkcję zrzutu.
O ile wiem, współrzędne nie są przechowywane w żadnym pliku. Są one przechowywane w pamięci w haszapie i zrzucane dla polecenia dumpsys. Wyjaśnia to również, dlaczego wyszukiwanie heirarchii katalogów nie ujawniło żadnych plików z informacjami GPS.
Jeśli chcesz te informacje w bardziej standardowym formacie, trzeba będzie wziąć trasę aplikacji i iść z czymś takim to . Ta aplikacja eksportuje informacje do pliku GPS lub KML, które można przesyłać do aplikacji opartych na lokalizacji geograficznej.
PS: Działa to również na nierootowanym urządzeniu.
adb shell dumpsys location > dumpsys.txt
wyprowadzenie wyniku do pliku.adb shell
,Last Known Locations
informacje są zawsze puste, nawet ręcznie włączam GPS.