0

我尝试在 Galaxy S2 中使用“getGsmSignalStrength”跟踪 GSM 信号强度。但它一直给出 99 的值。即使手机收到 4 bar 的信号,它也会显示 99。

这是我的代码

public class MyPhoneStateListener extends PhoneStateListener  {

static SignalStrength mSignalStrength;
static int signal;

public static void signal() 
{

    signal = mSignalStrength.getGsmSignalStrength();        
}
}

然后我从另一个班级打电话给它,

         signal2 = MyPhoneStateListener.signal;

       if (signal2 <= 2 || signal2 == 99) strength="No signal";
       else if (signal2 >= 12) strength="Very strong";
        else if (signal2 >= 8) strength="Strong";
        else if (signal2 >= 5) strength="Weak";
        else strength="Very weak"; 

它总是说“没有信号”,即使我正在观察信号条并且它显示了两个或三个条。

有谁知道为什么它一直给我这个价值或如何解决它?我将非常感谢您的回答或回应。

4

1 回答 1

0

初始化 mSignalStrength 如下代码:

mSignalStrength = PhoneStateListener.LISTEN_SIGNAL_STRENGTHS
于 2014-04-18T11:47:11.053 回答