【问题标题】:Android - Input Text within app doesn't workAndroid - 应用程序内的输入文本不起作用
【发布时间】:2013-01-14 15:06:02
【问题描述】:

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

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

【问题讨论】:

    标签: java android shell adb


    【解决方案1】:

    要将文本注入到 Android 应用程序中,注入器必须具有

       android.permission.INJECT_EVENTS 
    

    权限,所以必须是系统应用。

    你的 Runtime.getRuntime().exec 没有这个权限。

    【讨论】:

    • 感谢回复,仍然没有任何输出。我还尝试在我的应用程序中使用 EditText,它工作正常。我也可以从终端为任何应用程序运行它。
    【解决方案2】:

    如果您从本机可执行文件运行命令,它工作正常。 构建 NDK 二进制文件并执行:

    char * command = "input text hello%sworld\0";
    system( command );//fork and exec input text ...
    

    【讨论】:

      【解决方案3】:

      也许你需要使用: Runtime.getRuntime().exec("shell input text");

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-10-21
        • 1970-01-01
        • 2023-04-07
        • 1970-01-01
        • 2020-08-24
        • 2016-12-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多