Android - 应用程序中的输入文本不起作用

时间:2013-01-14 15:06:02

标签: java android shell adb

我正在尝试使用adb输入文本方法将文本输入到当前正在运行的应用程序(不是我自己的),如果我从命令提示符运行它,例如'adb input text“Android”,如果我从终端模拟器运行它。但是下面的代码运行成功,但屏幕上没有输出..我也尝试了各种其他方法来运行shell命令,这些命令也没有失败,但没有输出任何文本.. 谁知道我做错了什么?

try {
            //Runtime.getRuntime().exec("su");
            Runtime.getRuntime().exec("input text \":\"");
        } catch (IOException e) {
            e.printStackTrace();
        } 

3 个答案:

答案 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");