Я хочу отправлять события ввода с клавиатуры в активное приложение из моего сервиса. Мое приложение - это служба, работающая в фоновом режиме и получающая команды из сети (действует как 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
Но не мог понять, как я могу достичь того, что мне нужно.