如何在没有实际键盘的情况下使用Android的输入法服务?

时间:2019-05-24 11:07:33

标签: java android input methods keyboard

我想将按键输入事件从我的服务发送到活动应用程序。我的应用程序是一项在后台运行的服务,它正在从网络接收命令(就像在Android设备上运行的Rest API一样)

由于非系统应用程序本身不是活动应用程序时无法发送键事件,因此我决定将我的应用程序设计为虚拟键盘。 我在这里遵循了教程: https://developer.android.com/guide/topics/text/creating-input-method.html

除了我自己的从网络接收命令的服务外,我还添加了一个输入法服务。 (当前为空)

现在,如何使用IM服务? 我的意思是没有实际的键盘该如何发送按键事件?

我应该将将用于调用键事件的函数放在IM服务中,然后从我的服务中调用它吗? 如果是,我该怎么办?

我相信,以下代码是发送“后退”键事件的正确代码。但是我应该如何将其放入代码中? (在IM服务上?)

        getCurrentInputConnection().sendKeyEvent(
                new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK));
        getCurrentInputConnection().sendKeyEvent(
                new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK));

我也检查了这个例子: https://android.googlesource.com/platform/development/+/ec1f72d17dbbfd8012e0c4164f62b82ff2e7a9a9/samples/SoftKeyboard?autodive=0%2F

但是不明白如何实现自己的需求。

0 个答案:

没有答案