如何将InputMethodService与服务连接?

时间:2019-05-24 21:03:33

标签: java android service keyboard

我想要将正在扩展InputMethodService的自定义软键盘与另一个服务连接。我需要从通用服务的“软键盘”中调用方法。

问题是我无法扩展Binder类,因为onBind()方法是在AbstractInputMethodService中最终定义的...

现在,如何从其他服务调用SoftKeyboard类中的方法?

1 个答案:

答案 0 :(得分:1)

我已经通过使用广播接收器类解决了这个问题。

    class MyReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("GET_KEY_KEY")) {
            String msg = intent.getStringExtra("msg");
                InputConnection ic = getCurrentInputConnection();
                if (ic != null) {
                    ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_RIGHT));
                }
        }

    }
}

然后我向我的服务发送了广播。

                Intent intent = new Intent();
            intent.setAction("GET_KEY_KEY");
            sendBroadcast(intent);