java - 在我的应用程序中执行命令
问题描述
我正在尝试从我的 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。我已经尝试过其他方法来做到这一点,但都没有成功。
任何想法?
解决方案
我已经多次收到空工作目录错误,这一直是我的命令的问题。尝试这个:
Process proc = Runtime.getRuntime().exec(new String[] { "su", "-c", "input keyevent 26"});
proc.waitFor();
这至少应该解决“空环境”错误。
推荐阅读
- python - 熊猫框架中的 IBM 色调分析器输出具有重复值
- vue.js - 看不到 vuetify 'v-select' 组件
- jquery - 如何限制用户从父节点 Kendo Tree 视图 MVC 中仅选择一个子节点
- delphi - 在我的 Delphi REST API 中验证 Azure AD 客户端令牌
- java - 支持带有特殊字符连字符的帐号的正则表达式模式,在我们应该允许可选的数字模式之后
- tron - 未找到 TronGrid API 获取交易标志
- java - Java如何清除控制台中的一行
- c - 不使用双类型转换时出现的问题
- kubernetes - helm secrets 无法在 Gitlab CI 中解密并且工作正常本地 CLI
- bash - Shell 脚本未正确从网页中抓取正文