Как подключить InputMethodService к Сервису? - PullRequest
1 голос
/ 25 мая 2019

Я хочу соединить свою пользовательскую Softkeyboard, которая расширяет InputMethodService, с другой службой. Мне нужно вызвать метод в моей Softkeyboard из универсального Сервиса.

Проблема в том, что я не могу расширить класс Binder, потому что метод onBind () определен окончательно в AbstractInputMethodService ...

Теперь, как я могу вызвать метод в моем классе SoftKeyboard из другого сервиса?

1 Ответ

1 голос
/ 26 мая 2019

Я решил это, используя класс приемника вещания.

    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);
...