我正试图ping一个网站以检测我是否有我的Android应用程序中的互联网。在许多设备上,这确实运行良好,但今天,使用新设备,它总是回报我没有互联网。
这是代码:
static public boolean isInternetAvailable(String url){
Runtime runtime = Runtime.getRuntime();
try {
String command = "/system/bin/ping -c 1 " + url;
Process ipProcess = runtime.exec(command);
int exitValue = ipProcess.waitFor();
return (exitValue == 0);
} catch (IOException e) { e.printStackTrace(); }
catch (InterruptedException e) { e.printStackTrace(); }
return false;
}
即使服务器在线,我可以从各种其他设备ping它,在新设备上它总是返回false。 ping命令是否可能由于某种原因被阻止? 新设备是三星GT-19305,安卓版本为4.3。
答案 0 :(得分:0)
你可以试试这个:
Process process = new ProcessBuilder()
.command("/system/bin/ping", "android.com")
.redirectErrorStream(true)
.start();
try {
InputStream in = process.getInputStream();
OutputStream out = process.getOutputStream();
readStream(in);
finally {
process.destroy();
}
}