NetWorkUtil网络状态
来源:互联网 发布:内外网络切换器原理 编辑:程序博客网 时间:2024/06/04 22:30
1.首先呢,我们设置网络状态的常量
public class NetWorkStatusConstants { /** * Unknown network class */ public static final int NETWORK_CLASS_UNKNOWN = 0; /** * wifi networks */ public static final int NETWORK_WIFI = 1; /** * "2G" networks */ public static final int NETWORK_CLASS_2_G = 2; /** * "3G" networks */ public static final int NETWORK_CLASS_3_G = 3; /** * "4G" networks */ public static final int NETWORK_CLASS_4_G = 4;}
NetWorkUtil
public class NetWorkUtil { /** * 获得网络连接是否可用 * @param context * @return */ public static boolean hasNetwork(Context context) { ConnectivityManager con = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo workinfo = con.getActiveNetworkInfo(); if (workinfo == null || !workinfo.isAvailable()) { return false; } return true; } /** * 判断是否是wifi连接 */ public static boolean checkWifiState(Context context) { boolean isWifiConnect = true; ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo[] networkInfos = cm.getAllNetworkInfo(); for (int i = 0; i < networkInfos.length; i++) { if (networkInfos[i].getState() == NetworkInfo.State.CONNECTED) { if (networkInfos[i].getType() == cm.TYPE_MOBILE) { isWifiConnect = false; } if (networkInfos[i].getType() == cm.TYPE_WIFI) { isWifiConnect = true; } } } return isWifiConnect; } /** * 获取手机连接的网络类型状态 WIFI/2G/3G/4G */ public static int getNetWorkStatus(Context context) { int netWorkType = NetWorkStatusConstants.NETWORK_CLASS_UNKNOWN; ConnectivityManager connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); if (networkInfo != null && networkInfo.isConnected()) { int type = networkInfo.getType(); if (type == ConnectivityManager.TYPE_WIFI) { netWorkType = NetWorkStatusConstants.NETWORK_WIFI; } else if (type == ConnectivityManager.TYPE_MOBILE) { netWorkType = getNetWorkClass(context); } } return netWorkType; } /** * 获取手机连接的网络类型是2G/3G/4G */ public static int getNetWorkClass(Context context) { TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); switch (telephonyManager.getNetworkType()) { case TelephonyManager.NETWORK_TYPE_GPRS: case TelephonyManager.NETWORK_TYPE_EDGE: case TelephonyManager.NETWORK_TYPE_CDMA: case TelephonyManager.NETWORK_TYPE_1xRTT: case TelephonyManager.NETWORK_TYPE_IDEN: return NetWorkStatusConstants.NETWORK_CLASS_2_G; case TelephonyManager.NETWORK_TYPE_UMTS: case TelephonyManager.NETWORK_TYPE_EVDO_0: case TelephonyManager.NETWORK_TYPE_EVDO_A: 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 NetWorkStatusConstants.NETWORK_CLASS_3_G; case TelephonyManager.NETWORK_TYPE_LTE: return NetWorkStatusConstants.NETWORK_CLASS_4_G; default: return NetWorkStatusConstants.NETWORK_CLASS_UNKNOWN; } }}
使用
int netWorkStatus = NetWorkUtil.getNetWorkStatus(MainActivity.this);
if (NetWorkStatusConstants.NETWORK_WIFI == netWorkStatus) { DownloadUtil downloadUtil = new DownloadUtil(MainActivity.this); downloadUtil.download(HttpUrlConstants.SERVER_RESOUSE_URL + url); }else if (NetWorkStatusConstants.NETWORK_CLASS_UNKNOWN == netWorkStatus) { ToastUtil.showMsg(MainActivity.this, "网络不可用,请检查网络"); } else { dialog1 = UiUtil.createDialog(MainActivity.this, "温馨提示", "取消", "更新", "处于移动网络,是否下载!", new View.OnClickListener() { @Override public void onClick(View view) { if ((boolean) view.getTag()) { dialog1.dismiss(); } else { dialog1.dismiss(); DownloadUtil downloadUtil = new DownloadUtil(MainActivity.this); downloadUtil.download(HttpUrlConstants.SERVER_RESOUSE_URL + url); } } } ); }
阅读全文
1 0
- NetWorkUtil网络状态
- 网络判断—NetWorkUtil
- 检查网络NetworkUtil
- NetworkUtil
- NetworkUtil
- 检查网络设置网络工具类NetWorkUtil
- NetworkUtil.java
- 分享github上的网络是否连接工具类NetWorkUtil及图片加载工具类ImageLoader
- NetworkUtil 网络工具类
- 网络工具类---NetWorkUtil
- 网络状态
- 网络状态设置网络
- 网络状态检测
- 查询网络状态
- 检测网络状态
- 判断iphone网络状态
- 检测网络状态
- win32 测试网络状态
- iOS基础控件---UIAlertView
- ios启动性能优化
- 银行卡校验规则(Luhn算法)
- Codeforces (869E || #439 Div.2 E || #439 Div.1 C)
- 手机访问智能硬件的三种模式
- NetWorkUtil网络状态
- mysql 主主+keepalive HA 模式
- 新科技让老有所依!LoRa物联网技术在养老智能监护中的应用
- SpringMVC异常报406 (Not Acceptable)的解决办法
- 2.4.Qt头文件与类及模块的添加
- java 线程池
- stm32学习笔记 F1系列UART
- 获取SD卡及手机ROM容量
- 【CSS进阶】伪元素的妙用--单标签之美