android ConnectivityManager 移动网络2g 3g 4g
来源:互联网 发布:matlab解矩阵方程 编辑:程序博客网 时间:2024/04/30 08:54
android ConnectivityManager 移动网络2g 3g 4g
Android 提供的 TelephonyManager 和 ConnectivityManager 都可以获取到NetworksInfo对象,通过getType()获取类型,判断是wifi还是mobile,
如果是mobile ,可以通过NetworksInfo对象的getSubType()和getSubTypeName()可以获取到对于的网络类型和名字
TelephonyManager.java:
…
/* Network type is unknown /
public static final int NETWORK_TYPE_UNKNOWN = 0;
/* Current network is GPRS /
public static final int NETWORK_TYPE_GPRS = 1;
/* Current network is EDGE /
public static final int NETWORK_TYPE_EDGE = 2;
/* Current network is UMTS /
public static final int NETWORK_TYPE_UMTS = 3;
/* Current network is CDMA: Either IS95A or IS95B/
public static final int NETWORK_TYPE_CDMA = 4;
/* Current network is EVDO revision 0/
public static final int NETWORK_TYPE_EVDO_0 = 5;
/* Current network is EVDO revision A/
public static final int NETWORK_TYPE_EVDO_A = 6;
/* Current network is 1xRTT/
public static final int NETWORK_TYPE_1xRTT = 7;
/* Current network is HSDPA /
public static final int NETWORK_TYPE_HSDPA = 8;
/* Current network is HSUPA /
public static final int NETWORK_TYPE_HSUPA = 9;
/* Current network is HSPA /
public static final int NETWORK_TYPE_HSPA = 10;
/* Current network is iDen /
public static final int NETWORK_TYPE_IDEN = 11;
/* Current network is EVDO revision B/
public static final int NETWORK_TYPE_EVDO_B = 12;
/* Current network is LTE /
public static final int NETWORK_TYPE_LTE = 13;
/* Current network is eHRPD /
public static final int NETWORK_TYPE_EHRPD = 14;
/* Current network is HSPA+ /
public static final int NETWORK_TYPE_HSPAP = 15;
…
GPRS : 2G(2.5) General Packet Radia Service 114kbps
EDGE : 2G(2.75G) Enhanced Data Rate for GSM Evolution 384kbps
UMTS : 3G WCDMA 联通3G Universal Mobile Telecommunication System 完整的3G移动通信技术标准
CDMA : 2G 电信 Code Division Multiple Access 码分多址
EVDO_0 : 3G (EVDO 全程 CDMA2000 1xEV-DO) Evolution - Data Only (Data Optimized) 153.6kps - 2.4mbps 属于3G
EVDO_A : 3G 1.8mbps - 3.1mbps 属于3G过渡,3.5G
1xRTT : 2G CDMA2000 1xRTT (RTT - 无线电传输技术) 144kbps 2G的过渡,
HSDPA : 3.5G 高速下行分组接入 3.5G WCDMA High Speed Downlink Packet Access 14.4mbps
HSUPA : 3.5G High Speed Uplink Packet Access 高速上行链路分组接入 1.4 - 5.8 mbps
HSPA : 3G (分HSDPA,HSUPA) High Speed Packet Access
IDEN : 2G Integrated Dispatch Enhanced Networks 集成数字增强型网络 (属于2G,来自维基百科)
EVDO_B : 3G EV-DO Rev.B 14.7Mbps 下行 3.5G
LTE : 4G Long Term Evolution FDD-LTE 和 TDD-LTE , 3G过渡,升级版 LTE Advanced 才是4G
EHRPD : 3G CDMA2000向LTE 4G的中间产物 Evolved High Rate Packet Data HRPD的升级
HSPAP : 3G HSPAP 比 HSDPA 快些
//Added in API 1
NETWORK_TYPE_GPRS – (2.5G)移动和联通
NETWORK_TYPE_EDGE – (2.75G)2.5G到3G的过渡,移动和联通
NETWORK_TYPE_UMTS – (3G)联通
//Added in API 4
NETWORK_TYPE_CDMA – (2G 电信)
NETWORK_TYPE_EVDO_0 – (3G)电信
NETWORK_TYPE_EVDO_A – (3.5G)属于3G过渡
NETWORK_TYPE_1xRTT – (2G)
//Added in API 5
NETWORK_TYPE_HSDPA – (3.5G)
NETWORK_TYPE_HSUPA – (3.5G)
NETWORK_TYPE_HSPA – (3G)联通
//Added in API 8
NETWORK_TYPE_IDEN – (2G)
//Added in API 9
NETWORK_TYPE_EVDO_B – 3G-3.5G
//Added in API 11
NETWORK_TYPE_LTE – (4G)
NETWORK_TYPE_EHRPD – 3G(3G到4G的升级产物)
//Added in API 13
NETWORK_TYPE_HSPAP(HSPA+) – (3G)
//检测当前网络 private static String getNetworkType(Context context) { String strNetworkType = ""; ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = cm.getActiveNetworkInfo(); if(networkInfo != null && networkInfo.isConnected()) { if(networkInfo.getType() == ConnectivityManager.TYPE_WIFI) { strNetworkType = "WIFI"; return strNetworkType; } else if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) { // 获取类型 MOBILE String _strSubTypeName = networkInfo.getSubtypeName(); // 网络子类型名字 int networkType = networkInfo.getSubtype(); // 获取网络子类型 switch (networkType) { case TelephonyManager.NETWORK_TYPE_GPRS: //移动和联通的2G为GPRS或EGDE case TelephonyManager.NETWORK_TYPE_EDGE: case TelephonyManager.NETWORK_TYPE_CDMA: //电信的2G为CDMA case TelephonyManager.NETWORK_TYPE_1xRTT: case TelephonyManager.NETWORK_TYPE_IDEN: //api<8 : replace by 11 strNetworkType = "2G"; break; case TelephonyManager.NETWORK_TYPE_UMTS: //联通的3G为UMTS或HSDPA case TelephonyManager.NETWORK_TYPE_EVDO_0: //电信的3G为EVDO 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: //api = 13, Constant Value: 15 strNetworkType = "3G"; break; case TelephonyManager.NETWORK_TYPE_LTE: //LTE为4G, api = 11, Constant Value: 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; } Log.d("getNetworkType", "TelephonyManager.NETWORK_TYPE : " + networkType); } } Log.d("getNetworkType", "Network Type : " + strNetworkType); return strNetworkType; } // 获取运营商 public static String getProvider() { String provider = "未知"; try { TelephonyManager telephonyManager = (TelephonyManager) ConfigManager .getContext().getSystemService(Context.TELEPHONY_SERVICE); String IMSI = telephonyManager.getSubscriberId(); Log.v("tag", "getProvider.IMSI:" + IMSI); if (IMSI == null) { if (TelephonyManager.SIM_STATE_READY == telephonyManager.getSimState()) { String operator = telephonyManager.getSimOperator(); Log.v("tag", "getProvider.operator:" + operator); if (operator != null) { if (operator.equals("46000") || operator.equals("46002") || operator.equals("46007")) { provider = "中国移动"; }else if (operator.equals("46001")) { provider = "中国联通"; }else if (operator.equals("46003")) { provider = "中国电信"; } } } } else { if(IMSI.startsWith("46000") || IMSI.startsWith("46002") || IMSI.startsWith("46007")) { provider = "中国移动"; }else if (IMSI.startsWith("46001")) { provider = "中国联通"; }else if (IMSI.startsWith("46003")) { provider = "中国电信"; } } } catch (Exception e) { e.printStackTrace(); } return provider; }
- android ConnectivityManager 移动网络2g 3g 4g
- 移动网络技术2G --> 3G --> 4G
- android判断2G/3G网络
- android判断2g|3g网络
- android 获取网络类型名称2G 3G 4G wifi
- Android 判断用户2G/3G/4G移动数据网络
- Android 判断用户2G/3G/4G移动数据网络
- Android 判断用户2G/3G/4G移动数据网络
- Android判断用户2G/3G/4G移动数据网络
- Android 判断用户2G/3G/4G移动数据网络
- Android 判断用户2G/3G/4G移动数据网络
- Android判断用户2G/3G/4G移动数据网络
- Android 判断用户2G/3G/4G移动数据网络
- Android 判断用户2G/3G/4G移动数据网络
- Android 判断用户2G/3G/4G移动数据网络
- Android 判断用户2G/3G/4G移动数据网络
- Android 判断用户2G/3G/4G移动数据网络
- Android 判断用户2G/3G/4G移动数据网络
- linux 系统被入侵之后你要做什么
- VS2010安装与部署出错:错误: 产品代码
- Tensorflow一些常用基本概念与函数(1)
- android CMWAP CMNET
- 训练题.海盗喝酒
- android ConnectivityManager 移动网络2g 3g 4g
- 以太坊(ETH)挖矿教程
- 【状压DP】BZOJ1088(SCOI2005)[扫雷Mine]题解
- Android HttpsUrlConnection HTTPS
- 数字转换为汉语中人民币的大写
- 6
- mybatis批量插入数据
- 互联网产品
- SQL操作指令笔记