/ **
*计算信号电平。每当有信号时都应使用
*正在显示。
*
* @param rssi在RSSI中测量的信号功率。
* @param numLevels计算出的级别数
*级。
* @return信号的电平,范围为0到numLevels-1
*(包括两端)。
* /
public static int calculateSignalLevel(int rssi, int numLevels) {
if (rssi <= MIN_RSSI) {
return 0;
} else if (rssi >= MAX_RSSI) {
return numLevels - 1;
} else {
float inputRange = (MAX_RSSI - MIN_RSSI);
float outputRange = (numLevels - 1);
return (int)((float)(rssi - MIN_RSSI) * outputRange / inputRange);
}
}
有人可以向我解释numLevels param的输入是什么吗?
我需要根据此方法的输出显示“好,更好,最好”的Wifi信号强度。请帮助我!
最佳答案
numLevels
实际上是您希望评估wifi信号强度的电平数。例如,选择
int numLevels = 5;
int strength = calculateSignalLevel(rssi, numLevels);
将为您提供0到4(如
numbLevels - 1 = 4
)的输出范围,其中4是最强的。由于要以“好”,“更好”和“最好”的等级评估信号强度,因此应输入
3
作为numLevels
参数。