Краткий вопрос: Можно ли (и как) отобразить программную клавиатуру из службы?
Длинный вопрос: Я написал сервис, который создает «верхнюю панель», отображаемую поверх всех действий, содержащую EditText. Я хочу отобразить экранную клавиатуру при нажатии на EditText, но этого не происходит.
Конечно, я попробовал это из onFocusChange () и onClick () службы:
InputMethodManager imm = (InputMethodManager)this.getSystemService(Service.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED);
Обходной путь, который я нашел, - запросить текущее действие, чтобы показать клавиатуру, расширив класс Activity и добавив интерфейс AIDL. Недостатком является то, что каждое ключевое событие должно быть отправлено обратно в Сервис (через другой интерфейс AIDL) и вручную преобразовано в Unicode.
Более того, если текущее действие содержит EditText, программная клавиатура работает только для этого действия и больше не отображается, когда выбран EditText службы.
Что мешает отображать программную клавиатуру службы, если текущее действие имеет EditText? Может ли это быть ограничение Android?