安卓 -- 判断网络是否可用

    /**
     * to judge if the net is available
     * 用户手机当前网络可用:WIFI、2G/3G/4G网络;
     * 用户打开与不打开网络,和是否可以用是两回事,打开了未必就可以上网
     */
    public static boolean isNetworkAvailable(Context context) {
        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;
                }
            }
        
            /*
            //在genymotion模拟器上做测试的时候,假如使用下面的方法,则会认为不可访问网络
            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;
            */
        }
        return false;
    }

 

posted @ 2014-09-16 11:35  老夫聊发少年狂  阅读(255)  评论(0编辑  收藏  举报