我可以用下面的代码获得WiFi信号电平以dBm。
for (ScanResult result : wifiScanResultList) {
int signalLevel = result.level;
}
它提供了负值。 当我们看到系统默认的无线网络设置,点击连接WiFi网络,它提供了“好”或“坏”的信号强度。 什么是我们可以过滤那些负面瓦莱斯为“好”的信号强度或“坏”的信号强度范围内?
我可以用下面的代码获得WiFi信号电平以dBm。
for (ScanResult result : wifiScanResultList) {
int signalLevel = result.level;
}
它提供了负值。 当我们看到系统默认的无线网络设置,点击连接WiFi网络,它提供了“好”或“坏”的信号强度。 什么是我们可以过滤那些负面瓦莱斯为“好”的信号强度或“坏”的信号强度范围内?
其旧的文章,但是这可能帮助别人...
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
int numberOfLevels = 5;
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int level = WifiManager.calculateSignalLevel(wifiInfo.getRssi(), numberOfLevels);
文档: 公共静态INT calculateSignalLevel(INT RSSI,INT numLevels)
请检查如何进行接收的无线信号功率dBm值表示。
优秀> -50dBm的
良好-50至-60 dBm的
博览会-60至-70 dBm的
弱<-70dBm的
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
// Level of a Scan Result
List<ScanResult> wifiList = wifiManager.getScanResults();
for (ScanResult scanResult : wifiList) {
int level = WifiManager.calculateSignalLevel(scanResult.level, 5);
System.out.println("Level is " + level + " out of 5");
}
// Level of current connection
int rssi = wifiManager.getConnectionInfo().getRssi();
int level = WifiManager.calculateSignalLevel(rssi, 5);
System.out.println("Level is " + level + " out of 5");
对,就是这样。 这是如何用于接收信号功率dBm的值被表示。 以下是在维基百科的一些细节。
-100是指最低值(无信号在所有),而0表示非常良好的信号(100%)
你已经拿到了水平,所以我会告诉你如何在无线网络划分为高,中,低强度。 以下是代码
INT级别= result.level;
if (level <= 0 && level >= -50) {
//Best signal
} else if (level < -50 && level >= -70) {
//Good signal
} else if (level < -70 && level >= -80) {
//Low signal
} else if (level < -80 && level >= -100) {
//Very weak signal
} else {
// no signals
}