Ответы:
Похоже, есть способ:
Оболочка adb расположение dumpsys> dumpsys.txt
Это даст вам файл со всей информацией о местоположении службы. В этом файле найдите 'Last Known Locations'
и вы должны увидеть что-то вроде:
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}]}]
Конечно, в список будет включена другая запись, если на устройстве включен поставщик GPS.
Исходя из кода Android, я попытался выяснить, как приложения получают местоположение, когда они используют LocationManager.getLastKnownLocation (). После небольшого количества следующего я оказался в LocationManagerService здесь . который реализует getLastLocation, а также функцию дампа.
Насколько я могу судить, координаты не хранятся ни в одном файле. Они хранятся в памяти в hashmap и выгружаются для команды dumpsys. Это также объясняет, почему поиск по иерархии каталогов не выявил никаких файлов с информацией о gps.
Если вы хотите эту информацию в более стандартном формате, вам нужно будет принять маршрут приложения и идти с чем - то вроде этого . Это приложение экспортирует информацию в файл GPS или KML, который вы можете использовать в приложениях на основе гео.
PS: Это работает и на некорневом устройстве.
adb shell
, Last Known Locations
информация всегда пуста, даже если я вручную включил GPS.
adb shell dumpsys location > dumpsys.txt
вывести результат в файл.