Android原生API并没有直接提供ping的命令,但可以通过执行shell命令的方式来进行ping。以下是一个示例代码:
public class PingUtil {
private static final String IP = "www.google.com";
public static void ping() {
Process process = null;
try {
process = Runtime.getRuntime().exec("ping -c 1 -w 100 " + IP);
int status = process.waitFor();
if (status == 0) {
Log.d("PingUtil","successful ping");
} else {
Log.d("PingUtil","failed ping");
}
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if (process != null)
process.destroy();
}
}
}
在代码中,首先用Runtime.getRuntime.exec()执行shell命令。此处的 shell命令是 “ping -c 1 -w 100 ” + IP,意思是向目标IP发送一个ICMP Echo Request并等待100毫秒。如果应答正常,waitFor()返回0,表示ping成功,否则返回1。
然后在try-catch语句里面处理抛出的异常。最后在finally子句中释放process对象,防止内存泄漏。
你可以在需要的地方调用PingUtil.ping()方法来对指定IP进行ping操作。
注意,执行ping操作需要访问网络,所以必须在AndroidManifest.xml中添加对应的权限:
<uses-permission android:name="android.permission.INTERNET" />
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/169694.html