2013-03-15 69 views
1

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

回答

2

Android有多个LocationProviders,包括:

  • LocationManager.GPS_PROVIDER:获取使用位置GPS
  • LocationManager.NETWORK_PROVIDER:使用WiFi,蜂窝网络等获得位置
  • LocationManager.PASSIVE_PROVIDER:得到由已经提供了一种使用位置数据运行提供商。这允许几个应用程序共享地理位置信息)

您不必支付任何费用使用NETWORK_PROVIDER
一些供应商可能不存在在所有设备上,根据手机型号和Android版本。

供应商有不同的特点:网络是快,但不够精确始终,GPS精确,但速度慢和电池密集等的最佳策略是尽快你从几个供应商要求的位置,并取消挂起请求这是一个好位置不够取决于您的标准(精度,响应时间等)

我发现this article由雷托梅耶尔非常有用的包裹我周围的地理定位的头在Android

+0

我不知道的LocationManager。但是我想要做的是获取使用我的wifi发现的wifi热点的位置。但事情是,我没有连接到无线网络。我只是想找到任何可用的,并尝试了解我的当前位置。使用NETWORK_PROVIDER的LocationManager只有在连接到无线网络时才能使用。 – user2168777 2013-03-15 13:50:17

+0

NETWORK_PROVIDER不**不要求您连接到热点。它使用手机信号塔,可见的SSID以及其他可快速计算手机**的大致位置的其他信息。如果您试图获得热点的位置,那么这是另一个问题。 – nicopico 2013-03-15 14:01:16

+0

因此,如果我找到可用wifi点的列表,那么我可以获得每个人的额外信息,而无需建立诸如SSID或BSSID之类的连接。谢谢,我想我现在有一个想法。 – user2168777 2013-03-16 01:42:06