使用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秒)。(更慢)。
示例Shell代码:
方法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)。先谢谢。
答案 0 :(得分:2)
我意识到你是在使用Android Shell,但我认为你已经用尽了可用的选项。
我知道使用Instrumentation
:
final Instrumentation mInst = new Instrumentation();
mInst.sendKeySync(new KeyEvent(KeyEvent.ACTION_DOWN, keycode));
mInst.sendKeySync(new KeyEvent(KeyEvent.ACTION_UP, keycode));