GPRS 区分2g/3g/4g网络
2015-07-01 19:29
489 查看
[code]/** * 区分2g/3g/4gGPRG网络 * @author Bubble * */ import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.provider.SyncStateContract.Constants; import android.telephony.TelephonyManager; public class GPRSNetType { private static final int NETWORK_TYPE_UN***AILABLE = -1; private static final int NETWORK_TYPE_WIFI = -101; private static final int NETWORK_CLASS_WIFI = -101; private static final int NETWORK_CLASS_UN***AILABLE = -1; /** Unknown network class. */ private static final int NETWORK_CLASS_UNKNOWN = 0; private static final int NETWORK_CLASS_2_G = 1; private static final int NETWORK_CLASS_3_G = 2; private static final int NETWORK_CLASS_4_G = 3; // 适配低版本手机 public static final int NETWORK_TYPE_UNKNOWN = 0; public static final int NETWORK_TYPE_GPRS = 1; public static final int NETWORK_TYPE_EDGE = 2; public static final int NETWORK_TYPE_UMTS = 3; public static final int NETWORK_TYPE_CDMA = 4; public static final int NETWORK_TYPE_EVDO_0 = 5; public static final int NETWORK_TYPE_EVDO_A = 6; public static final int NETWORK_TYPE_1xRTT = 7; public static final int NETWORK_TYPE_HSDPA = 8; public static final int NETWORK_TYPE_HSUPA = 9; public static final int NETWORK_TYPE_HSPA = 10; public static final int NETWORK_TYPE_IDEN = 11; public static final int NETWORK_TYPE_EVDO_B = 12; public static final int NETWORK_TYPE_LTE = 13; public static final int NETWORK_TYPE_EHRPD = 14; public static final int NETWORK_TYPE_HSPAP = 15; /** * * @param context * @return */ static int getNetworkClass(Context context) { int networkType = NETWORK_TYPE_UNKNOWN; try { final NetworkInfo network = ((ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE)) .getActiveNetworkInfo(); if (network != null && network.isAvailable() && network.isConnected()) { int type = network.getType(); if (type == ConnectivityManager.TYPE_WIFI) { networkType = NETWORK_TYPE_WIFI; } else if (type == ConnectivityManager.TYPE_MOBILE) { TelephonyManager telephonyManager = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); networkType = telephonyManager.getNetworkType(); } } else { networkType = NETWORK_TYPE_UN***AILABLE; } } catch (Exception ex) { ex.printStackTrace(); } return getNetworkClassByType(networkType); } /** * 根据网络类型区分2g/3g/4g * @param networkType * @return */ private static int getNetworkClassByType(int networkType) { switch (networkType) { case NETWORK_TYPE_UN***AILABLE: return NETWORK_CLASS_UN***AILABLE; case NETWORK_TYPE_WIFI: return NETWORK_CLASS_WIFI; case NETWORK_TYPE_GPRS: case NETWORK_TYPE_EDGE: case NETWORK_TYPE_CDMA: case NETWORK_TYPE_1xRTT: case NETWORK_TYPE_IDEN: return NETWORK_CLASS_2_G case NETWORK_TYPE_UMTS: case NETWORK_TYPE_EVDO_0: case NETWORK_TYPE_EVDO_A: case NETWORK_TYPE_HSDPA: case NETWORK_TYPE_HSUPA: case NETWORK_TYPE_HSPA: case NETWORK_TYPE_EVDO_B: case NETWORK_TYPE_EHRPD: case NETWORK_TYPE_HSPAP: return NETWORK_CLASS_3G case NETWORK_TYPE_LTE: return NETWORK_CLASS_4G; default: return NETWORK_CLASS_UNKNOWN; } } /** * 获取当前的网络类型 * * @param context * @return */ public static String getCurrentNetworkType(Context context) { int networkClass = getNetworkClass(context); String type = "未知"; switch (networkClass) { case NETWORK_CLASS_UN***AILABLE: type = "无"; break; case NETWORK_CLASS_WIFI: type = "Wi-Fi"; break; case Constant.NETWORK_CLASS_2G: type = "2G"; break; case Constant.NETWORK_CLASS_3G: type = "3G"; break; case Constant.NETWORK_CLASS_4G: type = "4G"; break; case Constant.NETWORK_CLASS_RESERVE0: type = "未知"; break; } return type; } }
相关文章推荐
- TCP/IP协议简单介绍
- Apache, service httpd stop, Address already in use:
- Android wiki:04.ConnectivityManager检查是否有可用网络
- HTTP、TCP/IP、socket及bluetooth-socket的整理
- 【Linux 内核网络协议栈源码剖析】listen 函数剖析
- 【HTTP】Fiddler(一) - Fiddler简介和使用
- 套接字编程相关函数(2:TCP套接字编程相关函数)
- 关于DDOS攻击中TCP半连接数与FD的关系
- HttpClient(六)
- HttpClient(五)
- HttpClient(四)
- 7个开源的SNS社交网络平台
- httpClient(一)
- HTTP协议基础知识
- 利用zabbix监控tcp连接数
- 访问网络图片
- tcpdump使用范例
- iOS开发——post异步网络请求封装
- 初识Volley的基本用法
- UNIX网络进程间通信漫谈(1)