Как использовать Android Input Method Service без реальной клавиатуры? - PullRequest
0 голосов
/ 24 мая 2019

Я хочу отправлять события ввода с клавиатуры в активное приложение из моего сервиса. Мое приложение - это служба, работающая в фоновом режиме и получающая команды из сети (действует как API отдыха, работающий на устройстве Android)

Поскольку несистемное приложение не может отправлять ключевые события, когда само по себе не является активным приложением, я решил создать свое приложение как виртуальную клавиатуру. Я следовал за учебником здесь: https://developer.android.com/guide/topics/text/creating-input-method.html

Помимо собственной службы, которая получает команду из сети, я добавил службу метода ввода. (который в настоящее время пуст)

Теперь, как я могу использовать службу 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

Но не мог понять, как я могу достичь того, что мне нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...