zoukankan      html  css  js  c++  java
  • android工具类(2)NetWorkHelper 网络工具类



    import android.content.Context;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    import android.net.Uri;
    import android.net.NetworkInfo.State;
    import android.telephony.TelephonyManager;
    import android.util.Log;
    
    public class NetWorkHelper {
        public static final int NETWORN_NONE = 0;
        public static final int NETWORN_WIFI = 1;
        public static final int NETWORN_MOBILE = 2;
    	private static String LOG_TAG = "NetWorkHelper";
    
    	public static Uri uri = Uri.parse("content://telephony/carriers");
    
    	/**
    	 * 推断是否有网络
    	 */
    	public static boolean isNetworkAvailable(Context context) {
    		ConnectivityManager connectivity = (ConnectivityManager) context
    				.getSystemService(Context.CONNECTIVITY_SERVICE);
    
    		if (connectivity == null) {
    			Log.w(LOG_TAG, "couldn't get connectivity manager");
    		} else {
    			NetworkInfo[] info = connectivity.getAllNetworkInfo();
    			if (info != null) {
    				for (int i = 0; i < info.length; i++) {
    					if (info[i].isAvailable()) {
    						Log.d(LOG_TAG, "network is available");
    						return true;
    					}
    				}
    			}
    		}
    		Log.d(LOG_TAG, "network is not available");
    		return false;
    	}
    	/**
    	 * 检查网络状态
    	 * @param context
    	 * @return
    	 */
    	public static boolean checkNetState(Context context){
        	boolean netstate = false;
    		ConnectivityManager connectivity = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
    		if(connectivity != null)
    		{
    			NetworkInfo[] info = connectivity.getAllNetworkInfo();
    			if (info != null) {
    				for (int i = 0; i < info.length; i++)
    				{
    					if (info[i].getState() == NetworkInfo.State.CONNECTED) 
    					{
    						netstate = true;
    						break;
    					}
    				}
    			}
    		}
    		return netstate;
        }
    
    	/**
    	 * 推断网络是否为漫游
    	 */
    	public static boolean isNetworkRoaming(Context context) {
    		ConnectivityManager connectivity = (ConnectivityManager) context
    				.getSystemService(Context.CONNECTIVITY_SERVICE);
    		if (connectivity == null) {
    			Log.w(LOG_TAG, "couldn't get connectivity manager");
    		} else {
    			NetworkInfo info = connectivity.getActiveNetworkInfo();
    			if (info != null
    					&& info.getType() == ConnectivityManager.TYPE_MOBILE) {
    				TelephonyManager tm = (TelephonyManager) context
    						.getSystemService(Context.TELEPHONY_SERVICE);
    				if (tm != null && tm.isNetworkRoaming()) {
    					Log.d(LOG_TAG, "network is roaming");
    					return true;
    				} else {
    					Log.d(LOG_TAG, "network is not roaming");
    				}
    			} else {
    				Log.d(LOG_TAG, "not using mobile network");
    			}
    		}
    		return false;
    	}
    
    	/**
    	 * 推断MOBILE网络是否可用
    	 * 
    	 * @param context
    	 * @return
    	 * @throws Exception
    	 */
    	public static boolean isMobileDataEnable(Context context) {
    		ConnectivityManager connectivityManager = (ConnectivityManager) context
    				.getSystemService(Context.CONNECTIVITY_SERVICE);
    		boolean isMobileDataEnable = false;
    
    		isMobileDataEnable = connectivityManager.getNetworkInfo(
    				ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();
    
    		return isMobileDataEnable;
    	}
    
    	
    	/**
    	 * 推断wifi 是否可用
    	 * @param context
    	 * @return
    	 * @throws Exception
    	 */
    	public static boolean isWifiDataEnable(Context context) {
    		ConnectivityManager connectivityManager = (ConnectivityManager) context
    				.getSystemService(Context.CONNECTIVITY_SERVICE);
    		boolean isWifiDataEnable = false;
    		isWifiDataEnable = connectivityManager.getNetworkInfo(
    				ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();
    		return isWifiDataEnable;
    	}
    
    	
        public static int getNetworkState(Context context){
            ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    
            //Wifi
            State state = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
            if(state == State.CONNECTED||state == State.CONNECTING){
                return NETWORN_WIFI;
            }
    
            //3G
            state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
            if(state == State.CONNECTED||state == State.CONNECTING){
                return NETWORN_MOBILE;
            }
            return NETWORN_NONE;
        }
    	
    }
    


  • 相关阅读:
    面向对象的测试用例设计有几种方法?如何实现?
    html5直接调用手机相机照相/录像
    关于ionic2在IOS上点击延迟的问题
    vue项目使用html5+ barcode扫码在苹果遇到的问题以及自己的解决方法
    vue设置多个入口
    把项目中的vant UI组件升级
    记录axios在IOS上不能发送的问题
    getElementsByClassName兼容 封装
    记录vue用 html5+做移动APP 用barcode做扫一扫功能时安卓 的bug(黑屏、错位等等)和解决方法
    JS的事件委托
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/6784957.html
Copyright © 2011-2022 走看看