Короткий вопрос: Возможно ли (и как) отобразить программную клавиатуру из Служба?
Длинный вопрос: Я написал службу, которая создает «верхнюю панель», отображаемую поверх всех действий, содержащую 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?