zoukankan      html  css  js  c++  java
  • network: Android 网络判断(wifi、3G与其他)

    package mark.zeng;   
       
    import Java.util.List;   
       
    import Android.content.Context;   
    import android.location.LocationManager;   
    import android.net.ConnectivityManager;   
    import android.net.NetworkInfo;   
    import android.telephony.TelephonyManager;   
       
    public class NetworkProber {   
       
        /**  
         * 网络是否可用  
         *   
         * @param activity  
         * @return  
         */   
        public static boolean isNetworkAvailable(Context context) {   
            ConnectivityManager connectivity = (ConnectivityManager) context   
                    .getSystemService(Context.CONNECTIVITY_SERVICE);   
            if (connectivity == null) {   
            } 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;   
        }   
       
        /**  
         * Gps是否打开  
         *   
         * @param context  
         * @return  
         */   
        public static boolean isGpsEnabled(Context context) {   
            LocationManager locationManager = ((LocationManager) context   
                    .getSystemService(Context.LOCATION_SERVICE));   
            List<String> accessibleProviders = locationManager.getProviders(true);   
            return accessibleProviders != null && accessibleProviders.size() > 0;   
        }   
       
        /**  
         * wifi是否打开  
         */   
        public static boolean isWifiEnabled(Context context) {   
            ConnectivityManager mgrConn = (ConnectivityManager) context   
                    .getSystemService(Context.CONNECTIVITY_SERVICE);   
            TelephonyManager mgrTel = (TelephonyManager) context   
                    .getSystemService(Context.TELEPHONY_SERVICE);   
            return ((mgrConn.getActiveNetworkInfo() != null && mgrConn   
                    .getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel   
                    .getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);   
        }   
       
        /**  
         * 判断当前网络是否是wifi网络  
         * if(activeNetInfo.getType()==ConnectivityManager.TYPE_MOBILE) { //判断3G网  
         *   
         * @param context  
         * @return boolean  
         */   
        public static boolean isWifi(Context context) {   
            ConnectivityManager connectivityManager = (ConnectivityManager) context   
                    .getSystemService(Context.CONNECTIVITY_SERVICE);   
            NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();   
            if (activeNetInfo != null   
                    && activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) {   
                return true;   
            }   
            return false;   
        }   
       
        /**  
         * 判断当前网络是否是3G网络  
         *   
         * @param context  
         * @return boolean  
         */   
        public static boolean is3G(Context context) {   
            ConnectivityManager connectivityManager = (ConnectivityManager) context   
                    .getSystemService(Context.CONNECTIVITY_SERVICE);   
            NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();   
            if (activeNetInfo != null   
                    && activeNetInfo.getType() == ConnectivityManager.TYPE_MOBILE) {   
                return true;   
            }   
            return false;   
        }   
    }  
    另外还有两个方法判断网络是否可用:
    
    public static boolean isNetworkAvailable_00(Context context) {   
            ConnectivityManager cm = ((ConnectivityManager) context   
                    .getSystemService(Context.CONNECTIVITY_SERVICE));   
            if (cm != null) {   
                NetworkInfo info = cm.getActiveNetworkInfo();   
                if (info != null && info.isConnectedOrConnecting()) {   
                    return true;   
                }   
            }   
            return false;   
        }   
       
        public static boolean isNetworkAvailable_01(Context context) {   
            ConnectivityManager cm = (ConnectivityManager) context   
                    .getSystemService(Context.CONNECTIVITY_SERVICE);   
            NetworkInfo network = cm.getActiveNetworkInfo();   
            if (network != null) {   
                return network.isAvailable();   
            }   
            return false;   
        }  
    更加严谨的写法: 
    public static boolean checkNet(Context context) {   
               
            try {   
                ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);   
                if (connectivity != null) {   
                   
                    NetworkInfo info = connectivity.getActiveNetworkInfo();   
                    if (info != null && info.isConnected()) {   
                       
                        if (info.getState() == NetworkInfo.State.CONNECTED) {   
                            return true;   
                        }   
                    }   
                }   
            } catch (Exception e) {   
            return false;   
      }   
            return false;   
        } 
  • 相关阅读:
    正则表达式---用户验证
    最短路 Dijkstra
    最短路 Dijkstra+堆优化
    LCIS(最长公共上升子序列)
    最小生成树 Kruskal
    网络流 最大流
    网络流 最小费用最大流
    树链剖分
    树状数组
    双重Hash
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/5670292.html
Copyright © 2011-2022 走看看