获取lat / long以在Android中返回WIFI扫描

时间:2016-04-03 02:21:07

标签: android wifi

我一直在玩WifiManager进行扫描并获得范围内的wifi列表。我希望能够在地图上绘制这些图。返回的结果似乎没有任何我可以用于lat或long的属性。

2 个答案:

答案 0 :(得分:1)

WifiManager不会为您提供任何类型的位置数据。您必须使用LocationManager。 LocationManager将根据用户的GPS和附近的Wifi网络提供位置数据。

请参阅NETWORK_PROVIDER - This provider determines location based on availability of cell tower and WiFi access points. Results are retrieved by means of a network lookup.

答案 1 :(得分:0)

简短回答:

这是不可能的。

在各种802.11 IEEE标准(即Wi-Fi)本身中,没有任何内容允许在任何级别上执行此操作。 Wi-Fi中没有地理位置概念。

要做到这一点,你必须依赖更高级别的协议,这些协议不是强制性的,也不是在所有/大多数Wi-Fi AP或STA中实施的广泛传播的标准,不够可靠,不能真正有用

if TL;DR:

没有半严重的可靠方法可以做到这一点(但是有些人假装这样做),因为2016年没有这项技术。

但有些人正在努力改变这一点。

else:

LONG ANSWER:

注1:

然而,有些应用尝试使用启发式方法,例如:

扫描时,

绕自己旋转360度,

  • 记录来自AP的Wi-Fi信号强度,应该与它的距离有关,

  • ......并将其与扫描设备的地理位置相关联 - 通过GPS获得,或者不太精确地通过周围的附近蜂窝天线塔获得,这可以在在线数据库中获得,

  • ...精确地获取用户周围的AP地图。

请注意,这是非常启发式和不精确的。首先,Wi-Fi RSSI(接收信号强度强度)远非可靠的距离测量。例如:有墙吗?家具?周围的无线电噪声是多少?

并且,注2:

仍然,用例是[*],所以市场就在那里,所以有一些努力。

目前(2016年),Wi-Fi Aliance(又名WFA aka wi-fi.org)有一个工作组。

http://www.wi-fi.org/beacon/rolf-de-vegt/never-lost-indoors-the-promise-of-wi-fi-location

虽然,首先,这是基于Wi-Fi Fine Timing Measurement (FTM) protocol,利用IEEE 1588(PTP)和802.1AS(gPTP),see here来自802.1(又称有线以太网)。而且这个FTM还没有。

目前,目标只是测量节点的距离。其主要动机是地理位置,而是准确测量传播延迟,这对于视频/音频流非常重要:设备需要一个共同的挂钟才能同步播放,如果你不知道从一个节点到另一个节点传播它需要多长时间,就不能共享这个公共时钟。

Wi-Fi Fine Timing Measurement工作组于2014年启动。从那里开始已经完成的IEEE标准,硅供应商支持,固件/操作系统支持,以及您附近设备上的应用程序(以及顶级认证计划)为了确保每个人都能与任何人相处得很好,嗯,你将不得不等待几年。这只是最基本的:准确测量距离 - 没有地理位置。

因此,要引用WFA(Wi-Fi Aliance)的“Wi-Fi位置的承诺”,再添加几年。对于现成的广泛支持,可能非常现实地发布到2020年恕我直言。

<强> [*]:

而BTW,长期愿景使用案例和市场远远超出智能手机。这是物联网。而不是“可穿戴物联网”或其他消费类电子产品小玩意的时刻。想想无线传感器的工业网络来监控工厂/基础设施/建筑物。消费电子产品只是早期采用者,也是冰山一角。