在我的应用程序内执行命令

时间:2018-05-21 16:48:19

标签: java android command-line

我正在尝试从我的Android应用程序执行命令,以便通过代码配置我的设备的某些方面。 例如,我试图使用此代码锁定我的设备(来自扩展MainActivity类的类):

Process p=Runtime.getRuntime().exec("su");
DataOutputStream dos = new DataOutputStream(p.getOutputStream());
dos.writeBytes("adb shell input keyevent 26");
dos.writeBytes("exit\n");
dos.flush();
dos.close();
p.waitFor();

当我运行它时,我会收到:

java.io.Exception: Error running exec(). Command: [su] Working directory: null Environment: null

我的设备没有root。我已经尝试过其他方法来做到这一点,但一直没有成功。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我不认为你可以在不使用你的应用程序的情况下做到这一点。因此,尝试在root设备上执行此操作。

root用户可以尝试检查root权限,然后执行这些任务。

要检查here提及的root权限:

{{1}}

答案 1 :(得分:0)

我多次得到null工作目录错误,这一直是我的命令的问题。试试这个:

Process proc = Runtime.getRuntime().exec(new String[] { "su", "-c", "input keyevent 26"});
proc.waitFor();

这至少应该解决“零环境”问题。错误。