判断网络的情况中,有个比较麻烦的情况就是连上了某个网络,但是那个网络无法上网 ,,, = =
想到了用ping指令来判断,经测试,可行~ ~ ~
private static
final boolean ping() {
String result =
null;
try {
String ip =
"www.baidu.com";// 除非百度挂了,否则用这个应该没问题~
Process p = Runtime.getRuntime().exec("ping -c 3 -w 100 " + ip);//ping3次
// 读取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.i("TTT",
"result content : " + stringBuffer.toString());
// PING的状态
int status = p.waitFor();
if (status == 0) {
result = "successful~";
return
true;
} else {
result =
"failed~ cannot reach the IP address";
}
} catch (IOException e) {
result =
"failed~ IOException";
} catch (InterruptedException e) {
result =
"failed~ InterruptedException";
} finally {
Log.i("TTT",
"result = " + result);
}
return
false;
}