Android 用代码Ping网络
protected void runLogCatCommand(String command) {
String cmd = "ping -c 4 " + command; //ping command(例:www.baidu.com) 4次
try {
logcatProcess = Runtime.getRuntime().exec(cmd);
printLogCatInfo(logcatProcess);
} catch (Exception e) {
e.printStackTrace();
}
}
private Process logcatProcess;
private Thread logcatExecThread;
private boolean runLogcatThread = false;
private void printLogCatInfo(Process process) {
final BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
final BufferedReader errInput = new BufferedReader(new InputStreamReader(process.getErrorStream()));
runLogcatThread = true;
logcatExecThread = new Thread() {
@Override
public void run() {
String tmp1 = null;
String tmp2 = null;
try {
while (((tmp1 = input.readLine()) != null || (tmp2 = errInput.readLine()) != null)
&& runLogcatThread) {
if (tmp1 != null) {
Log.d("Ping", "tmp1 = " + tmp1);
}
if (tmp2 != null) {
Log.d("Ping", "tmp2 = " + tmp2);
}
}
input.close();
errInput.close();
} catch (Exception e) {
e.printStackTrace();
}
runLogcatThread = false;
}
};
logcatExecThread.start();
}
权限
android:sharedUserId=“android.uid.system”
uses-permission android:name=“android.permission.INTERNET” />
uses-permission android:name=“android.permission.ACCESS_NETWORK_STATE” />
如果失败时出现 tmp2 ping: icmp open socket: Operation not permitted 这个日志检查一下system/bin/ping的权限 可以试着修改成 04775 即 -rwsrwxr-x