Android 判断是否能真正上网【转】

来源:互联网 发布:网络打字员工作 编辑:程序博客网 时间:2024/05/29 14:15

来自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0109/2291.html

这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识、前端、后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过!

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

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
原创粉丝点击