Я показываю пользователю метод выбора метода ввода так, и сборщик всплывает:
InputMethodManager im = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
im.showInputMethodPicker();
Теперь, если пользователь отклоняет сборщик (например, щелкнув за пределами сборщика), я хочу знать, что это произошло, и выполнить некоторые действия (например, показать уведомление, например).
Я знаю, что в Activity я могу сделать грязный способ проверки фокуса корневого макета, и я знаю, что с помощью разрешения Accessibility я могу проверить, сфокусирован ли этот системный диалог или нет.
Проблема в том, что я запускаю службу, и мне нужно определить, отображается ли сборщик IME или нет, даже если я не в своем приложении (например, стороннее приложение или даже настройки клавиатуры Android), а также я найти разрешение на доступность немного запутанным для пользователя, поэтому я бы предпочел не прибегать к этому и найти альтернативный способ.
Есть ли альтернативный способ?