首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android工作室如何接近Wifi的距离和方向

在Android工作室如何接近Wifi的距离和方向
EN

Stack Overflow用户
提问于 2016-07-14 08:12:45
回答 2查看 1.6K关注 0票数 4

我怎样才能得到附近所有Wifi的方向和力量?到目前为止,我已经能够获得Wifi在水平上的力量,但只有连接的wifi使用下面的代码

代码语言:javascript
复制
   WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
            int numberOfLevels = 5;
            WifiInfo wifiInfo = wifiManager.getConnectionInfo();
            int level = WifiManager.calculateSignalLevel(wifiInfo.getRssi(), numberOfLevels);

我试着做一些像播放商店应用程序链接这样的事情

这个应用程序给出了校园附近的wifi地块。

有人能指点我这是怎么可能的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-14 08:46:35

简短的回答“不可能”。

很长的答案是,手机只给出了输入信号的强度,信号可以来自任何方向。您甚至无法估计到WiFi接入点的距离,直到您知道它的信号强度与您的手机的一些已知的距离。不过,您可以估计WiFi接入点的方向是从移动您的手机和差异的WiFi信号强度变化。

你链接到的应用程序告诉你开始扫描,然后慢慢旋转。这是记录设备方向和信号强度变化所需的。然后,基于设备的方位和该方向的信号强度,可以估计WiFi接入点所在的位置。我没有以任何方式与该应用程序连接,也没有使用过它。所有这些信息都是基于应用程序的屏幕截图和WiFi工作原理的一般知识。

然后还有其他一些有趣的事情,比如WiFi接入点,当它检测到一个低信号的设备时,它可以在一个特定的方向发送更强的信号。

票数 0
EN

Stack Overflow用户

发布于 2017-05-04 12:11:46

查找距离您可以尝试:

代码语言:javascript
复制
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);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38368868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档