numLevels Wifimanager.calculateSignalLevel方法的可能输入值是什么?

时间:2014-07-21 11:24:01

标签: android signals wifimanager rssi

/ **      *计算信号的电平。这应该在任何时候使用      *正在显示。      *      * @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参数的输入是什么? 我需要根据这种方法的输出显示Wifi信号强度,如“好,更好,最好”。请帮助我!!

1 个答案:

答案 0 :(得分:1)

numLevels实际上是您希望评估wifi信号强度的级别数。例如,选择

int numLevels = 5;
int strength = calculateSignalLevel(rssi, numLevels);

将为您提供0到4之间的输出范围(numbLevels - 1 = 4),其中4是最强的。

由于您希望评估“好”,“更好”和“最好”的信号强度。缩放,您应输入3作为numLevels参数。