Android网络的工具类
来源:互联网 发布:ubuntu server 安装 编辑:程序博客网 时间:2024/06/10 06:36
Android网络的工具类
判断是否断网
获取当前网络状态
/** * 获取ConnectivityManager. * * @param context 上下文信息 * @return 上下文信息中获取的ConnectivityManager */ private static ConnectivityManager getConnectivityManager(final Context context) { ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); return connectivityManager; } /** * 获取活动的NetworkInfo. * * @param context Context * @return Active networkInfo */ public static NetworkInfo getActiveNetworkInfo(final Context context) { ConnectivityManager connectivityManager = getConnectivityManager(context); NetworkInfo networkInfo = null; if (connectivityManager != null) { networkInfo = connectivityManager.getActiveNetworkInfo(); } return networkInfo; } /** * 检测网络是否可用. * * @param context Context * @return ture -- 网络可用, false -- 网络不可用 */ public static boolean isNetworkAvailable(final Context context) { if (context == null) { throw new NullPointerException("context不能为空"); } NetworkInfo networkInfo = getActiveNetworkInfo(context); return networkInfo != null && networkInfo.isConnectedOrConnecting(); } /** * 获取用户的网络状态 * * @return */ public static String getDeviceNetworkStatus(Context context) { String strNetworkType = ""; NetworkInfo networkInfo = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo(); if (networkInfo != null && networkInfo.isConnected()) { if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) { strNetworkType = "WIFI"; } else if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) { String _strSubTypeName = networkInfo.getSubtypeName(); // TD-SCDMA networkType is 17 int networkType = networkInfo.getSubtype(); switch (networkType) { 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: //api<8 : replace by 11 strNetworkType = "2G"; break; 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: //api<9 : replace by 14 case TelephonyManager.NETWORK_TYPE_EHRPD: //api<11 : replace by 12 case TelephonyManager.NETWORK_TYPE_HSPAP: //api<13 : replace by 15 strNetworkType = "3G"; break; case TelephonyManager.NETWORK_TYPE_LTE: //api<11 : replace by 13 strNetworkType = "4G"; break; default: // http://baike.baidu.com/item/TD-SCDMA 中国移动 联通 电信 三种3G制式 if (_strSubTypeName.equalsIgnoreCase("TD-SCDMA") || _strSubTypeName.equalsIgnoreCase("WCDMA") || _strSubTypeName.equalsIgnoreCase("CDMA2000")) { strNetworkType = "3G"; } else { strNetworkType = _strSubTypeName; } break; } } } return strNetworkType; }
如有不正确的地方,跪求指正。
0 0
- android 网络的工具类
- Android网络的工具类
- Android 获取网络状态的工具类
- Android 获取网络状态的工具类
- android网络相关的工具类
- Android判断网络状态的工具类
- Android工具类-关于网络、状态的工具类
- Android 网络连接工具类
- android网络连接工具类
- Android网络请求工具类
- android 网络判断工具类
- Android工具类--网络连接
- 网络请求以及网络请求下载图片的工具类 android开发java工具类
- 网络的工具类
- Android常用工具类之与网络相关的工具类
- Android常用工具类之Http网络请求的工具类
- Android中判断网络连接的工具类
- android-实时监听网络变化的工具类
- bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
- 练习题 1
- 2016-09-23课后练习
- 字符串输出的几种情况 关于内存问题
- Ehcache 使用说明
- Android网络的工具类
- VS2008中添加程序启动时显示图片功能方法
- 设计模式之桥梁模式10
- Note: This element neither has attached source nor attached Javadoc and hence no Javadoc could be fo
- LeetCode(240)Search a 2D Matrix II
- 初次见面请多多关照
- 第一次遇见博客
- 大一总结
- C和指针读书笔记(第四章)