安卓学习之-ConnectivityManager(判断网络连接)

/**
 * Android 网络判断类,用来判断网络状态

使用方法:

(1)先初始化

//初始化网络状态检测类
NetworkStateUtils.instance().init(this);
(2)判断是否联网

 NetworkStateUtils.instance().isNetworkConnected();
 * @author admin
 *
 */
public class NetworkStateUtils {
	//此处用了单例设计模式,系统中此类对象只能存在一个,适用场景:
	// 1. 应用中某个实例对象需要频繁的被访问。
	// 2. 应用中每次启动只会存在一个实例。如账号系统,数据库系统。
	static NetworkStateUtils s_m = null;
    
    private Context context;
     //私有化构造方法
    private NetworkStateUtils()
    {
         
    }
     //给context变量赋值
    public void init(Context ctx)
    {
        context = ctx;
    }
     
    public static synchronized NetworkStateUtils instance()
    {
        if (s_m == null)
        {
            s_m = new NetworkStateUtils();
        }
        return s_m;
    }
     
    /**
     * 判断是否有网络连接
     * @return
     */
    public boolean isNetworkConnected()
    {
        if (context == null)
        {
            return false;
        }
        ConnectivityManager connectivity = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity == null)
        {
            return false;
        } else
        {
            NetworkInfo[] info = connectivity.getAllNetworkInfo();
            if (info != null)
            {
                for (int i = 0; i < info.length; i++)
                {
                    if (info[i].getState() == NetworkInfo.State.CONNECTED)
                    {
                        return true;
                    }
                }
            }
        }
        return false;
    }
    /**
     * 判断WIFI网络是否可用
     * @return
     */
    public boolean isWifiConnected()
    {
        if (context != null)
        {
            ConnectivityManager mConnectivityManager = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo mWiFiNetworkInfo = mConnectivityManager
                    .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
            if (mWiFiNetworkInfo != null)
            {
                return mWiFiNetworkInfo.isAvailable();
            }
        }
        return false;
    }
    /**
     * 判断MOBILE网络是否可用
     * @return
     */
    public boolean isMobileConnected()
    {
        if (context != null)
        {
            ConnectivityManager mConnectivityManager = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo mMobileNetworkInfo = mConnectivityManager
                    .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
            if (mMobileNetworkInfo != null)
            {
                return mMobileNetworkInfo.isAvailable();
            }
        }
        return false;
    }
     /**
      * 
      * @return int返回联网类型
      */
    public int getConnectedType()
    {
        if (context != null)
        {
            ConnectivityManager mConnectivityManager = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo mNetworkInfo = mConnectivityManager
                    .getActiveNetworkInfo();
            if (mNetworkInfo != null && mNetworkInfo.isAvailable())
            {
                return mNetworkInfo.getType();
            }
        }
        return -1;
    }
     
}

你可能感兴趣的:(android)