首页 编程 软件学院 查看内容

Android 判断是否有外网连接

2014-12-12 17:53 1015 0

摘要: 有时候我们连接上一个没有外网连接的WiFi或者有线就会出现这种极端的情况,目前Android SDK还不能识别这种情况,一般的解决办法就是ping一个外网。方案:[java] view pl...
关键词: nbsp result StringBuffer ping content InterruptedExcep String return BufferedReader IOException

有时候我们连接上一个没有外网连接的WiFi或者有线就会出现这种极端的情况,目前Android SDK还不能识别这种情况,一般的解决办法就是ping一个外网。方案:[java] view plaincopyprint?/**      * @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;  }  
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部