使用adb shell input text <String>
或adb shell input keyevent <KEYCODE_NAME>
在向 Android 设备发送文本方面工作得很好,但我的问题是速度。
使用类似 input keyevent KEYCODE_A KEYCODE_A KEYCODE_SPACE KEYCODE_A KEYCODE_ENTER;
的内容将快速键入文本,但将其分成 2 个命令将导致 2 个命令之间有(1 秒)延迟(慢得多)。
示异常(exception)壳代码:
方法 1(更快):
input keyevent KEYCODE_A KEYCODE_A KEYCODE_ENTER KEYCODE_A KEYCODE_A KEYCODE_ENTER;
方法2:
input keyevent KEYCODE_A KEYCODE_A KEYCODE_ENTER;
input keyevent KEYCODE_A KEYCODE_A KEYCODE_ENTER;
我想尽快输入大文本,但有一个带有 input keyevent
的 shell 脚本比如后面跟着一个大的组合KEYCODE_A,将不会被执行。 (大型 Shell 命令被中止)
发送大文本而不产生长时间延迟的最佳方式是什么?
会sendevent
发送大文本会更快吗?
注意:
input text <String>
的弱点是它的大小也有限制,并且不能在其内部执行特殊的键事件(如后退按钮或 Enter/New Line )。
提前致谢。
最佳答案
我知道您正在寻找 Android Shell,但我认为您已经用尽了那里可用的选项。
我知道一种比您尝试过的方法更快的方法,即使用Instrumentation
:
final Instrumentation mInst = new Instrumentation();
mInst.sendKeySync(new KeyEvent(KeyEvent.ACTION_DOWN, keycode));
mInst.sendKeySync(new KeyEvent(KeyEvent.ACTION_UP, keycode));
关于android - 快速按键事件模拟(Android Shell),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40112183/