Android java /system/bin/ping 总是 returns exitCode 2,为什么?

Android java /system/bin/ping always returns exitCode 2, why?

我正在尝试在 Android 上使用 /system/bin/ping 命令来 ping 我网络上的设备。出于某种原因,它 returns 我尝试的每个 ping 都退出代码 2。 我有 tried:www.google.com、192.168.2.1(路由器本地 ip),目前子网上设备的每个可能的 ip...但它总是 returns 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。

有什么想法吗?

我打印出错误流,它告诉我需要 INTERNET 权限才能使用 ping。我将 INTERNET 权限添加到我的清单中,瞧!

感谢 Codebender 的建议!