如何在 Android 中获取 WiFi 噪音水平?

Cos*_*scu 6 java wireless android wifi android-wireless

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

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

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


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

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

Jor*_*lla 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
}
Run Code Online (Sandbox Code Playgroud)