分享到:
点击次数:333  更新时间:2016-10-11 16:24:04  【打印此页】  【关闭
澳门新濠天地娱乐场澳门新濠天地娱乐定制
当前位置:主页 > 新闻动态 > 技术交流 > Android 判断是否有外网连接

Android 判断是否有外网连接

责任编辑:admin 发布时间:2016-11-02 10:58 浏览次数:

 有时候我们连接上一个没有外网连接的WiFi或者有线就会出现这种极端的情况,目前Android SDK还不能识别这种情况,一般的解决办法就是ping一个外网。
 
方案:
    /**
         * @author suncat
         * @category 判断是否有外网连接(普通方法不能判断外网的网络是否连接,比如连接上局域网)
         * @return
         */ 
        public static final boolean ping() { 
     
            String result = null; 
            try { 
                    String ip = "www.baidu.com";// ping 的地址,可以换成任何一种可靠的外网 
                    Process p = Runtime.getRuntime().exec("ping -c 3 -w 100 " + ip);// ping网址3次 
                    // 读取ping的内容,可以不加 
                    InputStream input = p.getInputStream(); 
                    BufferedReader in = new BufferedReader(new InputStreamReader(input)); 
                    StringBuffer stringBuffer = new StringBuffer(); 
                    String content = ""; 
                    while ((content = in.readLine()) != null) { 
                            stringBuffer.append(content); 
                    } 
                    Log.d("------ping-----", "result content : " + stringBuffer.toString()); 
                    // ping的状态 
                    int status = p.waitFor(); 
                    if (status == 0) { 
                            result = "success"; 
                            return true; 
                    } else { 
                            result = "failed"; 
                    } 
            } catch (IOException e) { 
                    result = "IOException"; 
            } catch (InterruptedException e) { 
                    result = "InterruptedException"; 
            } finally { 
                    Log.d("----result---", "result = " + result); 
            } 
            return false; 
    }