我正在尝试实现一个输入法服务,该服务接收远程客户端发送的意图,并响应这些意图发送一个适当的 KeyEvent。
我在input method service
这个方法中使用
private void keyDownUp(int keyEventCode)
{
getCurrentInputConnection().sendKeyEvent(
new KeyEvent(KeyEvent.ACTION_DOWN, keyEventCode));
getCurrentInputConnection().sendKeyEvent(
new KeyEvent(KeyEvent.ACTION_UP, keyEventCode));
}
在 ..中发送KeyEvents
,Simple Sofykeyboard Sample
它可以在家中,在Activities.
.. 中发送,但是当 Dialog 或 Spinner 的菜单位于前台时,它不起作用。
事件被发送到parent activity behind the Dialog
.
有没有办法像使用输入法中的硬件键一样发送键和控制设备?
更好地解释我正在尝试做的事情:
我正在编写一种允许从远程控制设备的输入法。
我在客户端(台式电脑上的 java 应用程序)中编写命令(例如“UP”),设备上的服务器sendBroadcast()
发送带有信息的意图,输入法中的接收器获取它并调用 keyDownUp它通常keycode
可以DPAD_UP key.
工作,但是当我转到显示对话框的应用程序时,该keyDownUp
方法不会将键事件发送到dialog
,例如选择是或否按钮,但它会继续activty
控制Dialog
.
在这里 我找到了有同样问题的人......但没有答案......