首页 > 代码库 > Android 用ping的方法判断当前网络是否可用

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

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

想到了用ping指令来判断,经测试,可行~ ~ ~


private staticfinal 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~";

returntrue;

} 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);

}

returnfalse;

}