有时候我们连接上一个没有外网连接的WiFi或者有线就会出现这种极端的情况,目前Android SDK还不能识别这种情况,一般的解决办法就是ping一个外网。
-
/* @author suncat
-
* @category 判断是否有外网连接(普通方法不能判断外网的网络是否连接,比如连接上局域网)
-
* @return
-
*/
-
public static final boolean ping() {
-
-
-
String result = null;
-
try {
-
String ip = "";// 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;
-
}
阅读(2866) | 评论(0) | 转发(0) |