6

     我想实现一个测量来自室内环境的 WiFi 信号质量的应用程序。根据我的研究,我发现获得准确测量的最佳方法不是仅获得 RSSI,而是使用 SNR(信噪比)。

如何从 Android SDK 获取噪声级别?据我所知,没有可用的 API。但是,我找到了一种提供 SNR ( getEvdoSnr() ) 的方法。不幸的是,这个仅适用于 GSM/CDMA 信号,不适用于 WiFi 连接。

有什么办法可以计算 Android 中的 SNR?我相信这是可行的,因为我在 Play 商店(称为 WiFi SNR)上找到了一个成功测量该比率的应用程序。


注意:Android ScanResult 不提供噪音级别,即使在官方文档中指定:

描述有关检测到的接入点的信息。除了此处描述的属性外,请求者还跟踪质量、噪声和最大比特率属性,但当前不向外部客户端报告它们。

4

1 回答 1

2

使用https://developer.android.com/reference/android/net/wifi/ScanResult.html

描述有关检测到的接入点的信息。除了此处描述的属性外,请求者还跟踪质量、噪声和最大比特率属性,但目前不向外部客户端报告它们。

我敢打赌,这样的事情会给你想要的信息:

WifiManager manager = (WifiManager) getApplication().getSystemService(Context.WIFI_SERVICE);
for (ScanResult result : wifiManager.getScanResults()) {
   // do your stuff
}
于 2017-08-09T11:01:05.527 回答