获取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 String类型转换为float、double和int的工具类
  2. Android Studio如何允许访问网络资源
  3. Android中基于Socket的网络通信
  4. Android资源类型、结构、使用
  5. [Android]attrs.xml文件中属性类型format值的格式
  6. Android请求网络有三种方式:HttpURLConnection、 HttpClient和OkH
  7. android 网络通信(一)
  8. Android的网络与通信

随机推荐

  1. 将写好的软件安装到Android手机
  2. android switch模块 (耳机检测)
  3. iOS,Android,.NET通用AES加密算法
  4. 关于Activity的生命周期的一些见解
  5. android 面试知识个人积累1
  6. what is apk?
  7. Android 获取ROOT权限原理解析
  8. android service 的各种用法(IPC、AIDL)
  9. android 传感器获取方向总结
  10. Android 识别URL链接