Ping外网

来源:互联网 发布:js中dom是什么意思 编辑:程序博客网 时间:2024/05/06 20:34

      

       有时候我们连接上一个没有外网连接的WiFi或者有线就会出现这种极端的情况,目前Android SDK还不能识别这种情况,一般的解决办法就是ping一个外网。


方案:


/** * @author liu-feng * @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;}


0 0
原创粉丝点击