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