android 获取网络类型的方法

来源:互联网 发布:香港恐怖在线知乎 编辑:程序博客网 时间:2024/05/20 18:18
/** * 获取当前网络连接类型 * * @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;}


0 0
原创粉丝点击