如何检测“无载波”SIM卡模式?

时间:2013-04-07 11:22:30

标签: android sim-card

如何检测GSM信号强度何时低并且蜂窝网络丢失? 那么双SIM卡设备呢?

1 个答案:

答案 0 :(得分:3)

  

Android:如何检测“无载波”SIM卡模式?

PhoneStateListener课程旨在实现此目的。使用它时,当绑定到当前提供商的GSM信号发生变化时,您可以获得回调。

确保您在清单文件中设置了以下android.intent.action.PHONE_STATE

接下来,您需要调用TelephonyManager并将PhoneStateListener绑定到它:

TelephonyManager telManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); 
telManager.listen(this.phoneListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);

您可以实施PhoneStateListener

private final PhoneStateListener phoneListener = new PhoneStateListener() {

    @Override
    public void onSignalStrengthsChanged(SignalStrength signalStrength) {
        Log.d("onSignalStrengthsChanged", "The new singal strength is " 
                + signalStrength.getGsmSignalStrength());
    }

};

GSM信号强度值在TS 27.007 8.5中定义。基本上,值0 ,值31 good ,值99表示未知或不可检测。有效值为(0-31,99),如Android Developers manual中所述。

以上内容涵盖GSM信号,因此如果您只对GSM信号感兴趣,请坚持我之前的例子。如果您可能有兴趣说明数据网络是否因信号强度不足而可用,您还可以获取所有可用数据网络的其他信号值:

您可以通过调用TelephonyManager.getNetworkType()方法了解当前数据网络的类型。

  

双SIM卡设备怎么样?

我不知道,从来没有对他们工作过。但是我不明白为什么上述内容可能不适用于多SIM卡设备。它应该是这样的。