我正在尝试使用adb输入文本方法将文本输入到当前正在运行的应用程序(不是我自己的),如果我从命令提示符运行它,例如'adb input text“Android”,如果我从终端模拟器运行它。但是下面的代码运行成功,但屏幕上没有输出..我也尝试了各种其他方法来运行shell命令,这些命令也没有失败,但没有输出任何文本.. 谁知道我做错了什么?
try {
//Runtime.getRuntime().exec("su");
Runtime.getRuntime().exec("input text \":\"");
} catch (IOException e) {
e.printStackTrace();
}
答案 0 :(得分:1)
要将文本注入Android应用程序,注入器必须具有
android.permission.INJECT_EVENTS
权限,因此它必须是系统应用程序。
您的Runtime.getRuntime()。exec没有此权限。
答案 1 :(得分:0)
如果从Native可执行文件运行命令,它可以正常工作。 构建NDK二进制文件并执行:
char * command = "input text hello%sworld\0";
system( command );//fork and exec input text ...
答案 2 :(得分:0)
也许您需要使用:
Runtime.getRuntime().exec("shell input text");