[英]How to detect “no carrier” SIM card mode?
如何檢測GSM信號強度低和蜂窩網絡丟失的時間? 那么雙SIM卡設備呢?
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值好 ,而99值意味着未知或不可檢測 。 如Android開發人員手冊中所述,有效值為(0-31,99)。
上面介紹了GSM信號,因此,如果您僅對GSM信號感興趣,請遵循我之前的示例。 如果由於信號強度不足而對說明數據網絡是否可用感興趣,您還可以獲取所有可用數據網絡的其他信號值:
通過調用TelephonyManager.getNetworkType()
方法,您可以知道當前數據網絡的類型。
那么雙SIM卡設備呢?
我不知道,從未對它們進行過工作。 但是,我不明白為什么以上內容可能不適用於多SIM卡設備。 它應該這樣工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.