shu*_*n11 5 android key-events android-softkeyboard android-input-method
我正在尝试实现一个输入方法服务,该服务接收远程客户端发送的意图,并响应那些发送适当的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.
在这里, 我发现有同样问题的人...但没有答案......
首先,让我解释一下我所理解的内容。
我不明白如何再次打开带有对话框的活动。
AFAIK,当您按下软键盘中的某个键时,IMEonKey(int primaryCode, int[] keyCodes)会被调用,而当您按下硬键时,IME 会被调用:
public boolean onKeyUp(int keyCode, KeyEvent event)public boolean onKeyDown(int keyCode, KeyEvent event)您可以尝试调用该方法,但我不知道模拟硬键是否可以修复它。我猜这是一个焦点问题。您是否尝试过获取文本getCurrentInputConnection()以查看它所在的位置?