如何检测GSM信号强度低和蜂窝网络丢失? 双SIM卡设备怎么样?如何检测“无载体”SIM卡模式?
0
A
回答
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是好的,而值99表示不知道或不可检测。有效值为(0-31,99),如Android Developers manual中所述。
以上内容涵盖了GSM信号,所以如果您只对GSM信号感兴趣,请坚持我以前的例子。如果你可能有兴趣在陈述一个数据网络是否可用不是由于缺乏信号强度,还可以得到其它信号值,所有可用的数据网络:
- SignalStrength.getCdmaDbm()返回RSSI值对于CDMA网络以dBm为单位。
- SignalStrength.getEvdoDbm()返回Evdo网络的RSSI值,单位为dBm。
通过调用TelephonyManager.getNetworkType()
方法可以知道当前数据网络的类型。
双SIM卡设备怎么样?
我不知道,从来没有在他们的工作。但是我不明白为什么上述可能不适用于多SIM设备。它应该像这样工作。
相关问题
- 1. 如何检测SIM卡1或SIM卡2上的呼叫
- 2. J2ME SIM卡更改检测
- 3. 检测SIM卡改变(codenameOne)
- 4. 检测双SIM卡Android手机中两张SIM卡的状态
- 5. 使用sharedpreferences检测SIM卡更改
- 6. Android电话管理器检测SIM卡
- 7. 无法检测到SIM卡在android中的变化
- 8. 检测SIM卡变更或使用官方iOS SDK找到SIM卡的IMSI?
- 9. 提供商如何检测到重复的SIM卡?
- 10. 检查移动数据是从SIM卡或SIM卡2 Android
- 11. 如何检测iOS中的SIM变化
- 12. 如何获取所有者/ SIM卡号码和网络模式
- 13. Android:如何在Android中获取两张SIM卡的SIM卡ID?
- 14. 如何在双SIM卡插槽中更改SIM卡的信息?
- 15. 双SIM卡更改默认SIM卡
- 16. 检测“卡住”的身体
- 17. 在移动设备上的SIM卡检测
- 18. 如何检测设备是否没有使用iphone sdk的SIM卡?
- 19. Android:德国SIM卡用户:getSimOperatorName()测试
- 20. Sim卡托管?
- 21. 双SIM卡Android
- 22. 的SIM卡
- 23. WinCE MFC检查SIM卡是否存在?
- 24. 如何检查SIM卡是否可用于Android设备?
- 25. 如何检查是否安装了SIM卡
- 26. 如何检测使用的字体缩放模式?
- 27. 在Android中使用Airtel提供商SIM卡时无法获得SIM卡号码?
- 28. 以编程方式在Android中检索SIM卡联系人
- 29. 无SIM卡启动后的Android Screenlock/Keyguard
- 30. GPRS如何在GSM SIM卡上工作
非常感谢! 似乎,实际上需要检查ServiceStateChanged等待“OUT_OF_SERVICE”的“1”。 或者是最低信号更正确的状态?从未使用过... – peacemakerv 2013-04-07 15:01:01
您当然可以在onServiceStateChanged中观看“STATE_OUT_OF_SERVICE”事件。 onSignalStrengthsChanged可能会让您有机会更详细地了解信号的状态。这可以帮助您定义信号强度在您的应用程序中变得可接受或不可接受的级别。 – 2013-04-07 21:14:22
谢谢,一切都很清楚! – peacemakerv 2013-04-19 13:57:50