获取Android当前网络类型(2g、3g、4g、wifi)以及手机型号、版本号


获取手机型号: android.os.Build.MODEL 获取手机的SDK版本号:android.os.Build.VERSION.SDK 获取手机当前网络类型代码如下:这是一个工具类,大家可以保存下来以后方便使用。
package com.iqtogether.qxueyou.support.util;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.telephony.TelephonyManager;/** * 获取网络连接的工具类 * Created by chengguo on 2016/3/17. */public class IntenetUtil {        //没有网络连接    public static final int NETWORN_NONE = 0;    //wifi连接    public static final int NETWORN_WIFI = 1;    //手机网络数据连接类型    public static final int NETWORN_2G = 2;    public static final int NETWORN_3G = 3;    public static final int NETWORN_4G = 4;    public static final int NETWORN_MOBILE = 5;    /**     * 获取当前网络连接类型     * @param context     * @return     */    public static int getNetworkState(Context context) {        //获取系统的网络服务        ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);                //如果当前没有网络        if (null == connManager)            return NETWORN_NONE;                //获取当前网络类型,如果为空,返回无网络        NetworkInfo activeNetInfo = connManager.getActiveNetworkInfo();        if (activeNetInfo == null || !activeNetInfo.isAvailable()) {            return NETWORN_NONE;        }                // 判断是不是连接的是不是wifi        NetworkInfo wifiInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);        if (null != wifiInfo) {            NetworkInfo.State state = wifiInfo.getState();            if (null != state)                if (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING) {                    return NETWORN_WIFI;                }        }                // 如果不是wifi,则判断当前连接的是运营商的哪种网络2g、3g、4g等        NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);        if (null != networkInfo) {            NetworkInfo.State state = networkInfo.getState();            String strSubTypeName = networkInfo.getSubtypeName();            if (null != state)                if (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING) {                    switch (activeNetInfo.getSubtype()) {                        //如果是2g类型                        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:                            return NETWORN_2G;                        //如果是3g类型                        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:                            return NETWORN_3G;                        //如果是4g类型                        case TelephonyManager.NETWORK_TYPE_LTE:                            return NETWORN_4G;                        default:                            //中国移动 联通 电信 三种3G制式                            if (strSubTypeName.equalsIgnoreCase("TD-SCDMA") || strSubTypeName.equalsIgnoreCase("WCDMA") || strSubTypeName.equalsIgnoreCase("CDMA2000")) {                                return NETWORN_3G;                            } else {                                return NETWORN_MOBILE;                            }                    }                }        }        return NETWORN_NONE;    }}


更多相关文章

  1. Android(安卓)开发获取程序启动次数
  2. Android之使用传感器获取相应数据
  3. Android资源类型、结构、使用
  4. Android(安卓)截取屏幕图片并保存
  5. context对于android的重要意义
  6. 获取android手机内部存储空间和外…
  7. Android中基于Socket的网络通信
  8. Android(安卓)XML小工具
  9. SharedPreferences的用法及指南

随机推荐

  1. Android开发指南中文版(七)Content Provide
  2. Android View底层到底是怎么绘制的
  3. Android测试入门篇
  4. Android开发者e周报 第2期
  5. Android日记之2012\01\18
  6. Android System Server大纲之LightsServi
  7. 用两张图告诉你,为什么你的App会卡顿?
  8. Android白虹剑之EditView之非法输入
  9. opencl 和Renderscript总结
  10. android项目--超级简单的android通讯录