如何获得wifi接入点和移动设备之间的距离

时间:2015-01-30 08:32:32

标签: android distance android-wifi access-point

我正在开发一个Android应用程序,它具有搜索所有最近/检测到的wifi热点的模块。

我可以从搜索过的wifi热点中获取所有细节,例如 SSID,BSSID,功能,频率,级别和时间戳

有了这些信息,我还需要WiFi的距离(wifi接入点和移动设备之间的距离)

我使用下面的线来获得距离。

double exp = (27.55 - (20 * Math.log10(freqInMHz)) + Math.abs(levelInDb)) / 20.0;
double distanceM = Math.pow(10.0, exp);

这将以米为单位返回距离。

我通过google从许多页面上研究这些代码。

但我认为我错了,这段代码返回了错误的距离。我也在谷歌搜索上尝试了很多但没有得到准确的输出。

请帮帮我。我怎样才能获得Wifi AP和移动设备之间的距离?

4 个答案:

答案 0 :(得分:4)

此代码:

  

double exp =(27.55 - (20 * Math.log10(freqInMHz))+ Math.abs(levelInDb))/ 20.0;      double distanceM = Math.pow(10.0,exp);

假设两个各向同性天线之间的自由空间路径衰减并且AP以20dBm的功率发射(并且数学甚至不正确;自由空间路径损耗的频率依赖性不同;这不是重要的W-LAN的频段,使用,校正在 27.55 )。

实际上,您需要处理各向异性天线,路径中的障碍物,衍射效应以及AP在不需要高带宽的情况下改变其功率输出以节省能源。

或换句话说:仅仅通过观察接收到的功率来获得可靠的距离图是完全不切实际的。它可以给你一个数量级的球场,但不是那种远程准确的东西。这只是基础物理学。

测量距离的唯一可靠方法是飞行时间。为此,您必须测量设备和接入点之间的往返时间。由于我们处理的光速和距离大约为100米(上),这意味着测量纳秒。可以做但需要一些工作。请参阅SatelliteSD提供给您的链接(它使用德语,但图表和关键字应该是可以理解的)。

答案 1 :(得分:1)

有可能,您可以使用飞行时间方法。请记住,您不能依赖收到的消息,而是依赖于收到的开销(如ACK) 我只能想出这个参考文献(德语)measuring of signal runtimes 通过快速阅读,我认为这是一件非常繁琐的事情。

答案 2 :(得分:0)

不,这是不可能的。

您将无法找到从当前设备位置到实际热点的热点距离。

热点似乎没有报告他们的坐标。

查看包含更详细信息的Link

答案 3 :(得分:-1)

有一种名为" triangulation"但对于这种情况,你有至少3个热点。您可以在此pdf中详细解答。

http://www.see.ed.ac.uk/~slig/papers/ITM2010.pdf