前言
欢迎大家我分享和推荐好用的代码段~~
声明
欢迎转载,但请保留文章原始出处:
CSDN:http://www.csdn.net
雨季o莫忧离:http://blog.csdn.net/luckkof
正文
1.如果只需要监听Mobile State状态
通过监听
TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED
这条broadcast,
然后通过如下方式可以获取当前是哪张卡在建立数据链接:
GB,ICS,ICS2,JB版本请使用:
String state =intents.getStringExtra(Phone.STATE_KEY);
JB2,JB3,JB5版本请使用
String state =intents.getStringExtra(PhonConstants.STATE_KEY);
if(state.equals("CONNECTED")){
SIMInfo si = SIMInfo.getSIMInfoBySlot(context, intent.getIntExtra (Phone.GEMINI_SIM_ID_KEY,Phone.GEMINI_SIM_1));
int simId = (int)si.mSimId;
。。。。。
}
2.如果需要同时监听WIFI和Mobile State
可以监听
ConnectivityManager.CONNECTIVITY_ACTION这条广播
然后可以获取
NetworkInfo info = (NetworkInfo)intent.getExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
在获取当前的网络类型
Type = info.getType();
通过判断Type是
ConnectivityManager.TYPE_MOBILE还是ConnectivityManager.TYPE_WIFI
就知道当前是GPRS还是wifi链接上了。
NetworkInfo.State state = info.getState();
然后判断state是NetworkInfo.State.CONNECTED
还是NetworkInfo.State.DISCONNECTED