如何以编程方式启用或禁用以太网?

时间:2018-01-03 12:05:40

标签: android ethernet ifconfig

我想以编程方式在android中启用和禁用以太网。我使用了以下命令,这些命令在终端上工作但不在Java代码上工作。

ifconfig eth0 down
ifconfig eth0 up

和我的代码

public String executeCommand() {
    StringBuffer output = new StringBuffer();
    Process p;
    try {
        p = Runtime.getRuntime().exec("ifconfig eth0 down");
        p.waitFor();
        BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line = "";
        while ((line = reader.readLine())!= null) {
            output.append(line);
        }
    } catch (Exception e) {
        Log.d(TAG,"  exception "+e.toString());
        e.printStackTrace();
    }
    String response = output.toString();
    Log.d(TAG," response "+response);
    return response;
}  

运行此代码后,我在同一代码中运行cat /sys/class/net/eth0/operstate命令。它工作正常,但以太网不能禁用。

2 个答案:

答案 0 :(得分:0)

我没有在清单文件中添加Internet权限。

答案 1 :(得分:0)

尝试这样的事情:

        String c = "ifconfig eth0 down\n";

        Process rproc = Runtime.getRuntime().exec("sh");
        DataOutputStream os = new DataOutputStream(rproc.getOutputStream());

        os.writeBytes(c);
        os.flush();

我也希望做这样的事情,所以如果它适合你,我会尝试一下。 ;)此命令可能需要root访问才能工作。