我知道如何检查某个站点/IP 地址是否可以访问。但我想知道是否有可能知道特定站点或 IP 地址的响应时间或以毫秒 (ms) 为单位的 ping?
谢谢!
最佳答案
很有可能:) 只要确保你有正确的权限(你把它放在你的 AndroidManifest.xml 中)
<uses-permission android:name="android.permission.INTERNET" />
我的代码运行良好。
public String ping(String url) {
String str = "";
try {
java.lang.Process process = Runtime.getRuntime().exec(
"ping -c 1 " + url);
BufferedReader reader = new BufferedReader(new InputStreamReader(
process.getInputStream()));
int i;
char[] buffer = new char[4096];
StringBuffer output = new StringBuffer();
String op[] = new String[64];
String delay[] = new String[8];
while ((i = reader.read(buffer)) > 0)
output.append(buffer, 0, i);
reader.close();
op = output.toString().split("\n");
delay = op[1].split("time=");
// body.append(output.toString()+"\n");
str = delay[1];
Log.i("Pinger", "Ping: " + delay[1]);
} catch (IOException e) {
// body.append("Error\n");
e.printStackTrace();
}
return str;
}
上面的代码非常简单。 调用代码...
String str = ping("www.google.com");
//Unecessary but it makes it easier
android.widget.Toast.makeText(this, str, android.widget.Toast.LENGTH_LONG).show();
关于java - 如何知道 ms 中的 ping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40336438/