• 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;   
        } 
  • 相关阅读:
    JBoss中配置虚拟目录以及设置浏览器地址输入框支持中文的方法
    实现表格鼠标经过变色,点击变色并选中项目
    JBoss4.0与金山词霸有端口冲突
    Hibernate查询方式比较
    数字证书使用Javascript在浏览器中自动安装的解决方案
    JBoss设置URI编码,使浏览器URL支持中文
    VC++中list的使用方式
    使用JBoss管理数据库连接的方法(JDNI方式)
    CefSharp中实现Chrome中jS导出Excel
    WP7备注(27)(DependencyProperty|RoutedPropertyChangedEventHandler)
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/5670292.html
Copyright © 2020-2023  润新知