网络判断
来源:互联网 发布:淘宝上的全球购物流 编辑:程序博客网 时间:2024/06/03 18:39
封装一个网络工具类public class NetWorkUtil { /** * 判断是否有网络连接 * * @param context * @return */ public static boolean isNetworkConnected(Context context) { if (context != null) { // 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理) ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); // 获取NetworkInfo对象 NetworkInfo networkInfo = manager.getActiveNetworkInfo(); //判断NetworkInfo对象是否为空 if (networkInfo != null) return networkInfo.isAvailable(); } return false; } /** * 判断WIFI网络是否可用 * * @param context * @return / public static boolean isWifiConnected(Context context) { if (context != null) { // 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理) ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); // 获取NetworkInfo对象 NetworkInfo networkInfo = manager.getActiveNetworkInfo(); //判断NetworkInfo对象是否为空 并且类型是否为WIFI if (networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_WIFI) return networkInfo.isAvailable(); } return false; } /** * 判断MOBILE网络是否可用 * * @param context * @return */ public static boolean isMobileConnected(Context context) { if (context != null) { //获取手机所有连接管理对象(包括对wi-fi,net等连接的管理) ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); //获取NetworkInfo对象 NetworkInfo networkInfo = manager.getActiveNetworkInfo(); //判断NetworkInfo对象是否为空 并且类型是否为MOBILE if (networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) return networkInfo.isAvailable(); } return false; } /** * 获取当前网络连接的类型信息 * 原生 * * @param context * @return */ public static int getConnectedType(Context context) { if (context != null) { //获取手机所有连接管理对象 ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); //获取NetworkInfo对象 NetworkInfo networkInfo = manager.getActiveNetworkInfo(); if (networkInfo != null && networkInfo.isAvailable()) { //返回NetworkInfo的类型 return networkInfo.getType(); } } return -1; } /** * 获取当前的网络状态 :没有网络-0:WIFI网络1:4G网络-4:3G网络-3:2G网络-2 * 自定义 * * @param context * @return */ public static int getAPNType(Context context) { //结果返回值 int netType = 0; //获取手机所有连接管理对象 ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); //获取NetworkInfo对象 NetworkInfo networkInfo = manager.getActiveNetworkInfo(); //NetworkInfo对象为空 则代表没有网络 if (networkInfo == null) { return netType; } //否则 NetworkInfo对象不为空 则获取该networkInfo的类型 int nType = networkInfo.getType(); if (nType == ConnectivityManager.TYPE_WIFI) { //WIFI netType = 1; } else if (nType == ConnectivityManager.TYPE_MOBILE) { int nSubType = networkInfo.getSubtype(); TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); //3G 联通的3G为UMTS或HSDPA 电信的3G为EVDO if (nSubType == TelephonyManager.NETWORK_TYPE_LTE && !telephonyManager.isNetworkRoaming()) { netType = 4; } else if (nSubType == TelephonyManager.NETWORK_TYPE_UMTS || nSubType == TelephonyManager.NETWORK_TYPE_HSDPA || nSubType == TelephonyManager.NETWORK_TYPE_EVDO_0 && !telephonyManager.isNetworkRoaming()) { netType = 3; //2G 移动和联通的2G为GPRS或EGDE,电信的2G为CDMA } else if (nSubType == TelephonyManager.NETWORK_TYPE_GPRS || nSubType == TelephonyManager.NETWORK_TYPE_EDGE || nSubType == TelephonyManager.NETWORK_TYPE_CDMA && !telephonyManager.isNetworkRoaming()) { netType = 2; } else { netType = 2; } } return netType; } /** * 判断GPS是否打开 *ACCESS_FINE_LOCATION权限 * @param context * @return */ public static boolean isGPSEnabled(Context context) { //获取手机所有连接LOCATION_SERVICE对象 LocationManager locationManager = ((LocationManager) context.getSystemService(Context.LOCATION_SERVICE)); return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); }}如果是在首页判断那就写在 MainActivity中调用NetWorkUtil主要的代码在这里boolean b = NetWorkUtil.isNetworkConnected(this); IsBean isBean = new IsBean(); isBean.setFlag(b); EventBus.getDefault().post(isBean);}@Subscribe(threadMode = ThreadMode.MAIN) //在ui线程执行public void onDataSynEvent(IsBean event) { if(event.isFlag()){ Toast.makeText(this,"在线",Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(this,"没网",Toast.LENGTH_SHORT).show(); }}
阅读全文
0 0
- 网络判断
- 网络判断
- 判断网络
- 判断网络
- 网络判断
- 判断网络
- 网络判断
- 网络判断
- 网络判断
- 判断网络
- 网络判断
- 判断网络
- 网络判断
- 判断网络
- 网络判断
- 判断网络
- 网络判断
- 网络判断
- shell中的多进程【并发】
- A
- 一中OJ #1735 藏宝图 | 棋盘Multi_SSP 多源最短路径 BFS | 解题报告
- xXx图片助手 V2.0 ---新一代的装B神器
- map的遍历方式
- 网络判断
- JavaScript 错误消息
- //随机生成1位大写字母\小写字母\数字
- 计划要玩的地儿
- 汇编写启动代码之设置栈和调用C语言
- ASP.NET
- RGB颜色值在线转换工具
- 知乎数据爬虫分析+知乎精品2000问
- 使用Spring框架下的JdbcTemplate 完成对数据库的增删改查操作