获取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当前网络类型(2g、3g、4g、wifi)以及手机型号、版本号
  3. 获取Android设备的方向
  4. Android截屏
  5. 如何使Android应用程序获取系统权限【转】
  6. 理解 Context.getSystemService 原理
  7. Android(安卓)飞行模式的设置(打开/关闭飞行模式,获取飞行状态状
  8. Android(安卓)L下载
  9. Android仿人人客户端(v5.7.1)——网络模块时序图

随机推荐

  1. A folder failed to be renamed or moved
  2. Android自做小实验之 计算器
  3. Android精灵动画用法实例
  4. Android RecyclerView 网格显示正方形
  5. android耳机插拔的监听
  6. Android 圆形按钮实现
  7. 我的Android开发入门笔记(三):Starting Anot
  8. Android URL
  9. Android ---- Zygote 深入
  10. Android之ViewGroup实现可拖动的GridView