我想以编程方式在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
命令。它工作正常,但以太网不能禁用。
答案 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访问才能工作。