判断正在使用的网络类型 0.不知道网络类型;1、2G;2、3G;3、4g;4、wifi
1 2 /** Unknown network class. {@hide} */ 3 public static final String NETWORK_CLASS_UNKNOWN = "0"; 4 /** Class of broadly defined "2G" networks. {@hide} */ 5 public static final String NETWORK_CLASS_2_G = "1"; 6 /** Class of broadly defined "3G" networks. {@hide} */ 7 public static final String NETWORK_CLASS_3_G = "2"; 8 /** Class of broadly defined "4G" networks. {@hide} */ 9 public static final String NETWORK_CLASS_4_G = "3"; 10 /** Class of broadly defined "wifi" networks. {@hide} */ 11 public static final String NETWORK_CLASS_WIFI = "4"; 12 /** 13 * 判断正在使用的网络类型 0.不知道网络类型;1、2G;2、3G;3、4g;4、wifi 14 * @param context 15 * @return 16 */ 17 public static String getNet(Context context) { 18 try { 19 ConnectivityManager manager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 20 State mobile = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState(); 21 State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState(); 22 if(mobile == State.CONNECTED||mobile==State.CONNECTING) { 23 NetworkInfo info = manager.getActiveNetworkInfo(); 24 int type = info.getSubtype(); 25 switch (type) { 26 case TelephonyManager.NETWORK_TYPE_GPRS: 27 case TelephonyManager.NETWORK_TYPE_EDGE: 28 case TelephonyManager.NETWORK_TYPE_CDMA: 29 case TelephonyManager.NETWORK_TYPE_1xRTT: 30 case TelephonyManager.NETWORK_TYPE_IDEN: 31 return NETWORK_CLASS_2_G; 32 case TelephonyManager.NETWORK_TYPE_UMTS: 33 case TelephonyManager.NETWORK_TYPE_EVDO_0: 34 case TelephonyManager.NETWORK_TYPE_EVDO_A: 35 case TelephonyManager.NETWORK_TYPE_HSDPA: 36 case TelephonyManager.NETWORK_TYPE_HSUPA: 37 case TelephonyManager.NETWORK_TYPE_HSPA: 38 case TelephonyManager.NETWORK_TYPE_EVDO_B: 39 case TelephonyManager.NETWORK_TYPE_EHRPD: 40 case TelephonyManager.NETWORK_TYPE_HSPAP: 41 return NETWORK_CLASS_3_G; 42 case TelephonyManager.NETWORK_TYPE_LTE: 43 return NETWORK_CLASS_4_G; 44 default: 45 return NETWORK_CLASS_UNKNOWN; 46 } 47 } 48 else if(wifi == State.CONNECTED||wifi==State.CONNECTING) { 49 return NETWORK_CLASS_WIFI; 50 } 51 } catch (Exception e) { 52 LogUtil.e(tag, e); 53 return NETWORK_CLASS_UNKNOWN; 54 } 55 return NETWORK_CLASS_UNKNOWN; 56 }