Я пытаюсь использовать команду/system/bin/ping на Android, чтобы пинговать устройства в моей сети. По какой-то причине он возвращает код выхода 2 для каждого пинга, который я пытаюсь выполнить. Я пробовал: www.google.com, 192.168.2.1 (router local ip), и в настоящее время все возможные ip для устройств в подсети ... но он всегда возвращает 2. Вот мой код.Android java/system/bin/ping всегда возвращает exitCode 2, почему?
OnCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
String subnet = "192.168.2";
for (int i = 0; i <= 255; i++) {
String node = subnet + "." + i;
System.out.println(pingHost(node));
}
} catch (InterruptedException | IOException e) {
e.printStackTrace();
}
}
pingHost()
public static int pingHost(String host) throws IOException, InterruptedException {
String cmd = "/system/bin/ping -c 1 -W 1000 " + host;
Process proc = Runtime.getRuntime().exec(cmd);
proc.waitFor();
return proc.exitValue();
}
Я попытался с и без тайм-аут ... пока единственный код выхода, который печатает равно 2.
Любые идеи ?
Я тестировал это с помощью Samsung Galaxy S2 ... если это что-то значит. –
Почему вы не печатаете поток ошибок и поток вывода и не проверяете, дает ли это сообщение для ошибки ... – Codebender
Я попробую, когда вернусь к своему компьютеру. Спасибо :) –