如何检测GSM信号强度何时低并且蜂窝网络丢失? 那么双SIM卡设备呢?
答案 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卡设备。它应该是这样的。