安卓模拟按键
如何以编程方式模拟机器人上的按键?我想模仿手动按键(在机器人上显示有人正在按某个键,但它正在以编程方式完成)。
有涉及 的解决方案,但在新的 SDK 中,这不再是一个选项。IWindowManager
如何以编程方式模拟机器人上的按键?我想模仿手动按键(在机器人上显示有人正在按某个键,但它正在以编程方式完成)。
有涉及 的解决方案,但在新的 SDK 中,这不再是一个选项。IWindowManager
您可以使用检测,即从 on创建活动调用的以下代码将导致菜单多次打开和关闭:
new Thread(new Runnable() {
@Override
public void run() {
try {
Instrumentation inst = new Instrumentation();
for ( int i = 0; i < 10; ++i ) {
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_MENU);
Thread.sleep(2000);
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
Thread.sleep(2000);
}
}
catch(InterruptedException e){
}
}
}).start();
...但我不确定这是否是你所追求的
如果您有一个想要使用该事件的视图,则可以使用 BaseInputConnection 类及其 sendKeyEvent 方法。
要使用它,您需要指定一个将接收KeyEvent的目标视图(例如EditText)。例如:
EditText editText;
BaseInputConnection inputConnection = new BaseInputConnection(editText, true);
inputConnection.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_POUND));
这样做的结果就像用户实际上按下了#键(同时使编辑文本聚焦)。