Я пытаюсь реализовать службу метода ввода, которая получает намерения, отправленные удаленным клиентом, и в ответ на них отправляет соответствующий KeyEvent.
Я использую в input method service
этот метод
private void keyDownUp(int keyEventCode)
{
getCurrentInputConnection().sendKeyEvent(
new KeyEvent(KeyEvent.ACTION_DOWN, keyEventCode));
getCurrentInputConnection().sendKeyEvent(
new KeyEvent(KeyEvent.ACTION_UP, keyEventCode));
}
для отправки KeyEvents
как в Simple Sofykeyboard Sample
, и он работает дома, в Activities.
.. но не работает, когда диалог или меню Spinner находятся на переднем плане.
События отправляются на parent activity behind the Dialog
.
Есть ли способ отправки ключей и управления устройством, например, использование аппаратных клавиш из метода ввода?
Лучшее объяснение того, что я пытаюсь сделать:
Я вроде пишу метод ввода, который позволяет управлять устройством с пульта.
Я пишу в клиенте (Java-приложение на моем настольном компьютере) команду (например, «UP»), сервер на устройстве с sendBroadcast()
отправляет намерение с информацией и получатель в методе ввода получает его и вызывает keyDownUp с keycode
из DPAD_UP key.
Обычно это работает, но когда я захожу в приложение, которое показывает диалоговое окно, метод keyDownUp
не отправляет событие key в dialog
, например, для выбора кнопок «да» или «нет», но сохраняет управление activty
за Dialog
.
Здесь Я нашел кого-то с той же проблемой ... но ответа нет ...