我正在尝试实现一个输入方法服务,该服务接收远程客户端发送的意图,并响应那些发送适当的KeyEvent.

我在输入法服务中使用这种方法

private void keyDownUp(int keyEventCode)

{

getCurrentInputConnection().sendKeyEvent(

new KeyEvent(KeyEvent.ACTION_DOWN, keyEventCode));

getCurrentInputConnection().sendKeyEvent(

new KeyEvent(KeyEvent.ACTION_UP, keyEventCode));

}

像在Simple Sofykeyboard Sample中一样发送KeyEvents,它可以在家中,在Activities中工作……但是当Dialog或Spinner的菜单在前台时它不起作用.

事件将发送到Dialog后面的父活动.

有没有办法发送密钥和控制设备,如使用输入法的硬件密钥?

更好地解释我正在尝试做什么:

我有点写一个输入法,允许从远程控制设备.

我在客户端(桌面PC上的java应用程序)中写入命令(例如“UP”),设备上的服务器使用sendBroadcast()发送带有信息的intent,并且输入方法中的接收器获取它并且使用DPAD_UP键的键代码调用keyDownUp.

它通常有效,但当我转到显示对话框的应用程序时,keyDownUp方法不会将键事件发送到对话框,例如选择是或否按钮,但它会一直控制对话框后面的活动.

Here我发现有同样问题的人……但没有答案……

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐