ConnectivityManager网络连接类型类的参数
1 网络连接类型 ConnectivityManager
监听网络变化broadcat <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connec.getActiveNetworkInfo();
//倘若手机目前不在网络的服务范围,则connec.getActiveNetworkInfo()会返回null
//NetworkInfo []allinfo= connec.getAllNetworkInfo();
/*5种联网类型*/
String typeName = info.getTypeName(); //cmwap/cmnet/wifi/uniwap/uninet
info.getTypeName(); // 以何种方式连线 [WIFI]
info.getState(); // 连线状态 [CONNECTED]
info.isAvailable(); // 网络是否可用 [true]
info.isConnected(); // 网络是否已经连接 [true]
info.isConnectedOrConnecting(); // 网络是否已经连接或者连接中 [true]
info.isFailover(); // 网络是否有问题 [false]
info.isRoaming(); // 网络是否在漫游中 [false]
需要加的权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
2 PhoneStateListener
很多应用PhoneStateListener都是监听来电去电,PhoneStateListener还可以监听网络断开、正在连接和连接成功。
final TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
mTelephonyMgr.listen(new PhoneStateListener(){
@Override
public void onDataConnectionStateChanged(int state) {
switch(state){
case TelephonyManager.DATA_DISCONNECTED://网络断开
break;
case TelephonyManager.DATA_CONNECTING://网络正在连接
break;
case TelephonyManager.DATA_CONNECTED://网络连接上
break;
}
}
}, PhoneStateListener.LISTEN_DATA_CONNECTION_STATE);