1

所以我正在开发这个应用程序,它将通过使用手机的传感器 wifi 检测它来获取 wifi 热点的位置(手机实际上并没有连接到热点 wifi,它只是检测到)。在开始开发应用程序之前,我做了一些初步研究,似乎 Google Geolocation API 将为我完成这项工作。但是,它不是免费的(至少我在阅读 API 后所理解的)。我检查了检测 wifi 热点的其他应用程序,我只是想知道这些应用程序是否有自己的数据库,其中包含所有 wifi 热点信息(SSID、位置坐标等),所以当 wifi 传感器检测到 wifi 热点时,它会查找数据库并获取位置等信息。另外,我的一位同事提到谷歌地图也存储 wifi 信息。是真的吗?因为我不能

4

1 回答 1

3

Android 有多个 LocationProviders,包括:

  • LocationManager.GPS_PROVIDER:使用 GPS 获取位置
  • LocationManager.NETWORK_PROVIDER:使用 Wifi、蜂窝网络等获取位置。
  • LocationManager.PASSIVE_PROVIDER:使用已经运行的提供者提供的数据获取位置。这允许多个应用程序共享地理位置信息)

您无需支付任何费用即可使用NETWORK_PROVIDER
某些提供商可能并非出现在所有设备上,具体取决于手机型号和 Android 版本。

提供者有不同的特点:NETWORK 速度快但并不总是足够精确,GPS 精确但速度慢且耗电等。最好的策略是向多个提供者请求位置,并在您获得一个好的位置后立即取消挂起的请求足够取决于您的标准(精度、响应时间等)

我发现Reto Meier 的这篇文章对于了解 Android 上的地理定位非常有用

于 2013-03-15T10:48:20.983 回答