zoukankan      html  css  js  c++  java
  • android 网络连接判断

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

    使用方法:

    (1)先初始化

    //初始化网络状态检测类
    NetworkStateManager.instance().init(this);

    (2)判断是否联网

     NetworkStateManager.instance().isNetworkConnected();

    import android.content.Context;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    
    public class NetworkStateManager
    {
    	static NetworkStateManager s_m = null;
    	
    	private Context context;
    	
    	private NetworkStateManager()
    	{
    		
    	}
    	
    	public void init(Context ctx)
    	{
    		context = ctx;
    	}
    	
    	public static synchronized NetworkStateManager instance()
    	{
    		if (s_m == null)
    		{
    			s_m = new NetworkStateManager();
    		}
    		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;
    	}
    	
    	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;
    	}
    	
    }
    

     参考 http://www.cnblogs.com/qingblog/archive/2012/07/19/2598983.html

  • 相关阅读:
    算法疑难(js实现)---5、变态跳台阶
    算法疑难(js实现)---4、跳台阶(记忆化递归)
    算法疑难(js实现)---3、两个栈来实现一个队列
    算法疑难(js实现)---2、重建二叉树
    Ext的Panel总结(好文章)
    Extjs datefield 日历控件中文显示
    EXTJS项目实战经验总结一:日期组件的change事件:
    ExtJs内的datefield控件选择日期过后的事件监听select
    ExtJs FormPanel布局
    开发extjs常用的插件
  • 原文地址:https://www.cnblogs.com/likwo/p/3638096.html
Copyright © 2011-2022 走看看