Відповіді:
Схоже, є спосіб:
adb shell dumpsys location> 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.
Переходячи до коду андроїда, я спробував з’ясувати, як програми отримують місцезнаходження, коли вони використовують LocationManager.getLastKknownLocation (). Трохи переглянувши, я опинився тут у LocationManagerService . який реалізує getLastLocation, а також функцію скидання.
Наскільки я можу сказати, координати не зберігаються в жодному файлі. Вони зберігаються в пам'яті в хешмапі та скидаються для команди dumpsys. Це також пояснює, чому пошук в ієрархії каталогів не виявив жодного файлу з інформацією про gps.
Якщо ви хочете цю інформацію в більш стандартному форматі, вам потрібно буде прийняти маршрут додатки і йти з чим - то на кшталт цього . Цей додаток експортує інформацію в GPS або KML-файл, який ви можете подати у додатки на основі гео.
PS: Це добре працює і на не вкорінених пристроях.
adb shell
, Last Known Locations
інформація завжди порожня, навіть я вручну включаю GPS.
adb shell dumpsys location > dumpsys.txt
вивести результат у файл.