Android 用ping的方法判断当前网络是否可用

时间:2023-11-25 08:57:17

判断网络的情况中,有个比较麻烦的情况就是连上了某个网络,但是那个网络无法上网 ,,, = =

想到了用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;

}