一种从命令行获取位置坐标的方法


10

我正在寻找一个命令行,或一系列可以在根设备上转储或列出纬度和经度的命令。

我使用ADB Shell连接到设备。对我来说,一种将坐标记录到命令行的方法也很不错。

Answers:


11

看起来有一种方法:

adb shell 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和转储功能。

据我所知,坐标没有存储在任何文件中。它们存储在哈希图中的内存中,并转储为dumpsys命令。这也解释了为什么目录层次结构搜索未显示任何带有gps信息的文件。

如果您想以更标准的格式获取此信息,则需要采用该应用程序的路线,并选择类似这样的东西。该应用程序将信息导出到GPS或KML文件中,您可以将其输入基于地理的应用程序中。

PS:这同样适用于非root用户的设备。


1
对于Windows用户:adb shell dumpsys location > dumpsys.txt将结果输出到文件。
安德鲁·T。

我尝试使用模拟器通过模拟器检测GPS状态(主动,被动)adb shellLast Known Locations即使我手动启用GPS ,信息也始终为空。
talha17年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.