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

Aja*_*jay 3 android distance access-point android-wifi

我正在开发一个 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);
Run Code Online (Sandbox Code Playgroud)

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

我通过谷歌的许多页面研究得到了这些代码。

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

请帮我。如何获取 Wifi AP 和移动设备之间的距离?

dat*_*olf 5

这段代码:

双exp = (27.55 - (20 * Math.log10(freqInMHz)) + Math.abs(levelInDb)) / 20.0; 双距离M = Math.pow(10.0, exp);

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

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

或者换句话说:仅通过接收功率来获得可靠的距离数据是完全不切实际的。它可以给你一个大概的数量级,但不是很准确。这只是基础物理学。

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