android – 需要root在运行时通过app执行shell命令“input keyevent <#>”吗?

我正在尝试执行adb
shell命令输入keyevent 5以在运行时通过我的应用程序接听电话.

如果我这样做:

Runtime.getRuntime().exec("input keyevent 5");

它似乎没有执行(没有任何事情发生).但是当我这样做时:

Runtime.getRuntime().exec(new String[] {"su", "-c", "input keyevent 5"});

屏幕上的答案按钮上的预期模拟点击发生.这很好.

但是有一个问题是,在使用超级用户生根的某些设备上,该命令需要一段时间才能获得超级用户权限.它适用于具有Chainfire的SuperSU su二进制文件的设备.

我的问题是:
是否可以在运行时通过Java代码执行此命令而无需root?

提前致谢!

最佳答案 绝对没有!

这将是一个绝对的重大安全问题,因此你必须扎根.

点赞