/** * 获取当前网络连接类型 * * @param context * @return */ public static NetWorkState getNetWorkStatus(Context context) { NetWorkState stateCode = NetWorkState.NET_WORK_NO; ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo ni = cm.getActiveNetworkInfo(); if (ni != null && ni.isConnectedOrConnecting()) { switch (ni.getType()) { case ConnectivityManager.TYPE_WIFI: stateCode = NetWorkState.NET_WORK_WIFI; break; case ConnectivityManager.TYPE_MOBILE: switch (ni.getSubtype()) { case TelephonyManager.NETWORK_TYPE_GPRS: //联通2g case TelephonyManager.NETWORK_TYPE_CDMA: //电信2g case TelephonyManager.NETWORK_TYPE_EDGE: //移动2g case TelephonyManager.NETWORK_TYPE_1xRTT: case TelephonyManager.NETWORK_TYPE_IDEN: stateCode = NetWorkState.NET_WORK_2G; break; case TelephonyManager.NETWORK_TYPE_EVDO_A: //电信3g case TelephonyManager.NETWORK_TYPE_UMTS: case TelephonyManager.NETWORK_TYPE_EVDO_0: 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: stateCode = NetWorkState.NET_WORK_3G; break; case TelephonyManager.NETWORK_TYPE_LTE: stateCode = NetWorkState.NET_WORK_4G; break; default: stateCode = NetWorkState.NET_WORK_UNKNOWN; } break; default: stateCode = NetWorkState.NET_WORK_UNKNOWN; } } return stateCode; }
android 获取网络类型的方法
最新推荐文章于 2023-08-06 16:10:28 发布