我正在尝试实现一个输入方法服务,该服务接收远程客户端发送的意图,并响应那些发送适当的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));
}
Run Code Online (Sandbox Code Playgroud)
KeyEvents如在Simple Sofykeyboard Sample,发送它在家里工作Activities...但是当一个对话框或一个微调器的菜单在前景时它不起作用.
事件被发送到parent activity behind the Dialog.
有没有办法发送密钥和控制设备,如使用输入法的硬件密钥?
更好地解释我正在尝试做什么:
我有点写一个输入法,允许从远程控制设备.
我在一个客户端(我桌面电脑上的一个java应用程序)中编写一个命令(例如"UP"),设备上的服务器sendBroadcast()发送带有信息的意图,输入方法中的接收器获取它并调用keyDownUp在keycode对的DPAD_UP key.
它一般的作品,但是当我去到一个应用程序,显示一个对话框,该keyDownUp方法不将该键事件发送到dialog,例如用于选择是或否按钮,但它一直控制activty后面Dialog.
在这里, 我发现有同样问题的人...但没有答案......
android key-events android-softkeyboard android-input-method