506_网络状态Util
来源:互联网 发布:知乎 王师 编辑:程序博客网 时间:2024/06/18 17:27
网络状态Util
public class NetworkUtil {
//没有网络连接
public static final int NETWORK_NONE = 0;
//wifi连接
public static final int NETWORK_WIFI = 1;
//手机网络数据连接类型
public static final int NETWORK_2G = 2;
public static final int NETWORK_3G = 3;
public static final int NETWORK_4G = 4;
public static final int NETWORK_MOBILE = 5;
//获取网络类型
public static int getNetworkState(Context context) {
//获取系统的网络服务
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
//如果当前没有网络
if (null == connManager)
return NETWORK_NONE;
//获取当前网络类型,如果为空,返回无网络
NetworkInfo activeNetInfo = connManager.getActiveNetworkInfo();
if (activeNetInfo == null || !activeNetInfo.isAvailable()) {
return NETWORK_NONE;
}
//判断是不是连接的是不是wifi
NetworkInfo wifiInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (null != wifiInfo) {
NetworkInfo.State state = wifiInfo.getState();
if (null != state)
if (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING) {
return NETWORK_WIFI;
}
}
//如果不是wifi,则判断当前连接的是运营商的哪种网络2g、3g、4g等
NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (null != networkInfo) {
NetworkInfo.State state = networkInfo.getState();
String strSubTypeName = networkInfo.getSubtypeName();
if (null != state) {
if (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING) {
switch (activeNetInfo.getSubtype()) {
//如果是2g类型
case TelephonyManager.NETWORK_TYPE_GPRS: // 联通2g
case TelephonyManager.NETWORK_TYPE_CDMA: // 电信2g
case TelephonyManager.NETWORK_TYPE_EDGE: // 移动2g
case TelephonyManager.NETWORK_TYPE_1xRTT:
case TelephonyManager.NETWORK_TYPE_IDEN:
return NETWORK_2G;
//如果是3g类型
case TelephonyManager.NETWORK_TYPE_EVDO_A: // 电信3g
case TelephonyManager.NETWORK_TYPE_UMTS:
case TelephonyManager.NETWORK_TYPE_EVDO_0:
case TelephonyManager.NETWORK_TYPE_HSDPA:
case TelephonyManager.NETWORK_TYPE_HSUPA:
case TelephonyManager.NETWORK_TYPE_HSPA:
case TelephonyManager.NETWORK_TYPE_EVDO_B:
case TelephonyManager.NETWORK_TYPE_EHRPD:
case TelephonyManager.NETWORK_TYPE_HSPAP:
return NETWORK_3G;
//如果是4g类型
case TelephonyManager.NETWORK_TYPE_LTE:
return NETWORK_4G;
default:
//中国移动 联通 电信 三种3G制式
if (strSubTypeName.equalsIgnoreCase("TD-SCDMA") || strSubTypeName.equalsIgnoreCase("WCDMA") || strSubTypeName.equalsIgnoreCase("CDMA2000")) {
return NETWORK_3G;
} else {
return NETWORK_MOBILE;
}
}
}
}
}
return NETWORK_NONE;
}
//获取网络状态String
public static String getNetworkStateString(Context context) {
int networkState = getNetworkState(context);
switch (networkState) {
case NETWORK_NONE:
return "none";
case NETWORK_WIFI:
return "wifi";
case NETWORK_2G:
return "2G";
case NETWORK_3G:
return "3G";
case NETWORK_4G:
return "4G";
case NETWORK_MOBILE:
return "mobile";
}
return "none";
}
}
0 0
- 506_网络状态Util
- 常用util工具类——获取网络连接状态
- 511_ 获取网络状态2g3g4g
- 网络状态
- Android基础_判断WIFI移动网络状态,打开WIFI和移动网路
- 判断网络状态、Xutils3.0图片框架·····--狸菇凉_
- 网络状态设置网络
- 进程状态_笔记
- 多线程_ NSThread(状态)
- 设计模式_状态模式
- Java_多线程_线程状态
- 设计模式_状态模式
- UVALive 6625_状态压缩
- 设计模式_状态模式
- 设计模式_状态模式
- 设计模式_状态模式
- 设计模式_状态模式
- 网络状态检测
- Linux上(Ubuntu16.04上安装JDK1.8)
- 第五届蓝桥杯——地宫取宝记忆化
- 快排的递归和非递归实现
- 剑指Offer 36 数组中的逆序对(归并)
- 15. 3Sum
- 506_网络状态Util
- 507_安全键盘
- Machine Learning with Scikit-Learn and Tensorflow 6 决策树(章节目录)
- 508_封装WebViewActivity
- HDU6019 MG loves gold
- 利用二次元控件测量机械工程图中未标明零件尺寸
- 解决AndroidStudio编译出现available for offline mode的问题
- linux下的粘贴位
- iOS之GPUImage图片处理框架的使用