效果图:
工具类
/** * 获取网络连接信息 * * 根据NetworkInfo可以知道有很多的连接方式和信息 * * ① 当没有任何可用网络的时候,networkinfo为null 判断networkinfo是否为null * * ② 当只有wifi网络或者wifi网络和移动网络同时存在的时候,返回wifi网络连接信息 * * NetworkInfo参数如下: * * detailedState:CONNECTED(连接状态) * * extraInfo:yiteng1(wifi网络名称) * * isAvaiable:true(是否可用) * * networkType:1 * * state:CONNECTED * * subtype:0 * * typeName:WIFI(网络类型名称) * * ③ 当只有移动网络的时候,返回移动网络连接信息 * * NetworkInfo参数如下: * * detailedState:CONNECTED(连接状态) * * extraInfo:cmnet(移动网络名称) * * isAvaiable:true * * networkType:0 * * state:CONNECTED * * subtype:2 * * typeName:mobile(网络类型名称) * * @param context * @return */ public static NetworkInfo getActiveNetwork(Context context) { if (context == null) {return null;} ConnectivityManager mConnMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if (mConnMgr == null) {return null;} // 获取活动网络连接信息 NetworkInfo aActiveInfo = mConnMgr.getActiveNetworkInfo(); return aActiveInfo; }
使用方法:在需要监听网络的页面
NetworkInfo networkInfo = GetSystemInfo.getActiveNetwork(this); if (networkInfo == null) { ToastUtils.showCustomToastLong("无可用网络连接,请检查网络设置"); } else { if (networkInfo.isAvailable() == false) { ToastUtils.showCustomToastLong("无可用网络连接,请检查网络设置"); } else { String networkType = networkInfo.getTypeName(); if (AppConstants.NETWORK_WIFI.equalsIgnoreCase(networkType)) { ToastUtils.showCustomToastLong("已连接到wifi网络"+ networkInfo.getExtraInfo()); } else if (AppConstants.NETWORK_MOBILE.equalsIgnoreCase(networkType)) { ToastUtils.showCustomToastLong("您当前使用的是移动网络"); } } }