我怎样才能得到附近所有Wifi的方向和力量?到目前为止,我已经能够获得Wifi在水平上的力量,但只有连接的wifi使用下面的代码
WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
int numberOfLevels = 5;
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int level = WifiManager.calculateSignalLevel(wifiInfo.getRssi(), numberOfLevels);我试着做一些像播放商店应用程序链接这样的事情
这个应用程序给出了校园附近的wifi地块。
有人能指点我这是怎么可能的吗?
发布于 2016-07-14 08:46:35
简短的回答“不可能”。
很长的答案是,手机只给出了输入信号的强度,信号可以来自任何方向。您甚至无法估计到WiFi接入点的距离,直到您知道它的信号强度与您的手机的一些已知的距离。不过,您可以估计WiFi接入点的方向是从移动您的手机和差异的WiFi信号强度变化。
你链接到的应用程序告诉你开始扫描,然后慢慢旋转。这是记录设备方向和信号强度变化所需的。然后,基于设备的方位和该方向的信号强度,可以估计WiFi接入点所在的位置。我没有以任何方式与该应用程序连接,也没有使用过它。所有这些信息都是基于应用程序的屏幕截图和WiFi工作原理的一般知识。
然后还有其他一些有趣的事情,比如WiFi接入点,当它检测到一个低信号的设备时,它可以在一个特定的方向发送更强的信号。
发布于 2017-05-04 12:11:46
查找距离您可以尝试:
public double calculateDistance(double signalLevelInDb, double freqInMHz) {
double exp = (27.55 - (20 * Math.log10(freqInMHz)) + Math.abs(signalLevelInDb)) / 20.0;
return Math.pow(10.0, exp);
}https://stackoverflow.com/questions/38368868
复制相似问题