手机网络状态查询工具类

来源:互联网 发布:明底线知敬畏演讲稿 编辑:程序博客网 时间:2024/05/16 00:32
package com.mystudy.kibi.utils;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.telephony.TelephonyManager;/** * Created by KIBI熊 on 16/6/27. */public class NetworkStateUtil {    static ConnectivityManager connectivityManager = null;    static TelephonyManager telephonyManager = null;    static NetworkInfo curNetworkInfo = null;    static NetworkInfo wifiNetworkInfo = null;    static NetworkInfo mobileNetworkInfo = null;    public static final int NONE_TYPE = -1;    public static final int WIFI_TYPE = 0;    public static final int WAP_TYPE = 1;    public static final int NET_TYPE = 2;    /**     * 判断当前是否连接网络且可用     * @param context     * @return     */    public static boolean isNetworkConnected(Context context){        if(context != null){            connectivityManager = (ConnectivityManager) context                    .getSystemService(Context.CONNECTIVITY_SERVICE);            curNetworkInfo = connectivityManager.getActiveNetworkInfo();            if(curNetworkInfo != null){                return curNetworkInfo.isAvailable();            }        }        return false;    }    /**     * 判断该设备的Wi-Fi功能是否可用     * 无论连没连到Wi-Fi,只要设备打开了Wi-Fi功能,返回的都是true     *     * @param context     * @return     */    public static boolean isWIFIAvailable(Context context){        if(context != null){            connectivityManager = (ConnectivityManager) context                    .getSystemService(Context.CONNECTIVITY_SERVICE);            wifiNetworkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);            if(wifiNetworkInfo != null){                return wifiNetworkInfo.isAvailable();            }        }        return false;    }    /**     * 判断是否连接到了可用的Wi-Fi     * @param context     * @return     */    public static boolean isWIFIConnected(Context context){        if(context != null){            if(isNetworkConnected(context)){                return curNetworkInfo.getType()==ConnectivityManager.TYPE_WIFI;            }        }        return false;    }    /**     * 判断移动网络是否可用,即MOBILE网络     * 无论有没有打开移动数据网络,只要手机里有SIM卡,返回的都是true     * @param context     * @return     */    public static boolean isMobileAvailable(Context context){        if (context != null){            connectivityManager = (ConnectivityManager) context                    .getSystemService(Context.CONNECTIVITY_SERVICE);            mobileNetworkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);            if(mobileNetworkInfo != null){                return mobileNetworkInfo.isAvailable();            }        }        return false;    }    /**     * 获取当前网络类型     *     * 类型分为:  -1:无网络    0:Wi-Fi    1:WAP      2:NET     *     * 手机上网net和wap的区别:     * wap是老版网络协议的产物。主要针对老手机用户,net是微软的产     * 物,是互联网,一般手机用wap,智能机用net,当然智能机也可以用     * wap,wap稳定,net网速快。     * 打个比方,GPRS是一辆车,net和wap就是两条路;net是高速公路,     * wap是一般的水泥路;前者快,收费高,后者收费较少,但速度慢。     *     * @param context     * @return     */    public static int getNetworkTyoe(Context context){        if(context != null){            connectivityManager = (ConnectivityManager) context                    .getSystemService(Context.CONNECTIVITY_SERVICE);            curNetworkInfo = connectivityManager.getActiveNetworkInfo();            if(curNetworkInfo != null){                switch (curNetworkInfo.getType()){                    case ConnectivityManager.TYPE_WIFI:                        return WIFI_TYPE;                    case ConnectivityManager.TYPE_MOBILE:                        if(curNetworkInfo.getExtraInfo().toLowerCase().contains("net")){                            return NET_TYPE;                        }else {                            return WAP_TYPE;                        }                }            }        }        return NONE_TYPE;    }    /**     * 获取设备SIM卡的商网络服务商     * @param context     * @return     */    public static String getOperatorNetworkType(Context context){        if(context != null){            telephonyManager = (TelephonyManager) context                    .getSystemService(Context.TELEPHONY_SERVICE);            String networkOperatorName = telephonyManager.getNetworkOperatorName();            switch (telephonyManager.getNetworkType()){                case TelephonyManager.NETWORK_TYPE_GPRS:                case TelephonyManager.NETWORK_TYPE_EDGE:                case TelephonyManager.NETWORK_TYPE_CDMA:                case TelephonyManager.NETWORK_TYPE_1xRTT:                case TelephonyManager.NETWORK_TYPE_IDEN:                    return networkOperatorName+"2G";                case TelephonyManager.NETWORK_TYPE_UMTS:                case TelephonyManager.NETWORK_TYPE_EVDO_0:                case TelephonyManager.NETWORK_TYPE_EVDO_A:                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 networkOperatorName+"3G";                case TelephonyManager.NETWORK_TYPE_LTE:                    return networkOperatorName+"4G";            }        }        return "请插入SIM卡";    }}
0 0
原创粉丝点击