android - servicios - Cómo detectar la visibilidad del selector de métodos de entrada sin el permiso de Accesibilidad
programacion android pdf 2018 (1)
Le muestro al usuario el Selector de método de entrada como tal y aparece el selector:
InputMethodManager im = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
im.showInputMethodPicker();
Ahora, si el usuario cierra el selector (por ejemplo, al hacer clic fuera del selector), quiero saber que eso sucedió y tomar algunas medidas (como mostrar una notificación, por ejemplo).
Sé que en una Actividad puedo hacer la manera sucia de verificar el enfoque del diseño de la raíz y sé que con el permiso de Accesibilidad puedo verificar si el diálogo del sistema está enfocado o no.
El problema es que estoy ejecutando un servicio y necesito detectar si el selector IME se muestra o no, incluso si no estoy en mi aplicación (una aplicación de terceros, por ejemplo, o incluso la configuración del teclado de Android) y también encuentro la Accesibilidad El permiso es un poco confuso para el usuario, por lo tanto, preferiría no recurrir a eso y encontrar una manera alternativa.
¿Hay alguna manera alternativa?
Esto debería ser un comentario, pero aún no puedo comentar.
Podría usar xposed
para lograr eso, pero eso requeriría un dispositivo rooteado, y supongo que eso está fuera de discusión.
Esto es algo para lo que la accesibilidad es. Ya dijiste que no querías usar el camino sucio, así que te recomendaría que simplemente usas dicha API.
No debería haber una manera de hacer esto por cuestiones de seguridad (y no es unfaik).