Cómo detectar la visibilidad del selector de método de entrada sin el permiso de accesibilidad

Estoy mostrando al usuario el selector de método de entrada como así y el selector aparece:

InputMethodManager im = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); im.showInputMethodPicker(); 

Ahora si el usuario rechaza el selector (por ejemplo, haciendo clic fuera del selector) quiero saber que, que pasó y hacer alguna acción (como mostrar una notificación, por ejemplo).

Sé que en una actividad puedo hacer la manera sucia de comprobar el foco de la disposición de la raíz y sé que con el permiso de la accesibilidad puedo comprobar si ese diálogo del sistema está enfocado o no.

El problema es que estoy ejecutando un servicio y tengo que detectar si el selector de 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 encontrar la accesibilidad Permiso un poco confuso para el usuario por lo tanto, prefiero no recurrir a eso y encontrar una forma alternativa.

¿Hay una manera alternativa?

Esto debe ser un comentario, pero no puedo comentar todavía.

Usted podría utilizar xposed para lograr eso, pero eso requeriría un dispositivo con raíces, y supongo que eso está fuera de discusión.

Esto es una cosa para la aptitud de accesibilidad. Ya dijiste que no quieres usar el camino sucio, así que te recomiendo que solo uses dicho api.

No debe haber una manera de hacer esto por cuestiones de seguridad (y no es afaik).

  • ¿Hay alguna manera de obtener actualizaciones de fondo de la API de Google Fit?
  • ¿Es posible utilizar la herencia en las interfaces AIDL?
  • Revisión 2: Cómo pasar los datos de un servicio de fondo / subproceso a alguna otra actividad que no sea MainActivity que creó el servicio de fondo
  • ¿Es posible ejecutar mi servicio por tiempo indefinido?
  • IOS equivalente al servicio de Android?
  • Android: uso de la red en un servicio
  • cómo abrir la configuración de accesibilidad de mi aplicación directamente?
  • Detener el servicio hasta que se pueda establecer conexión a Internet
  • Servicio de Android: proceso vs. no
  • Acceda a Running service y llame a su método?
  • Detener el servicio de fondo Cuando la aplicación va al fondo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.