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?

One Solution collect form web for “Cómo detectar la visibilidad del selector de método de entrada sin el permiso de accesibilidad”

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).

  • Android startService () tarda mucho tiempo en volver al subproceso de interfaz de usuario
  • Si un servicio vinculado o hilos personalizados cuando descarga algo?
  • Detectar el evento "botón de inicio presionado" en el servicio android que muestra una interfaz de usuario (similar a los cabezales de chat de Facebook)
  • Uso de Alarmmanager para iniciar un servicio en un momento específico
  • ¿Cómo obtener una lista de servicios en ejecución en Android?
  • Cómo llamar al método en servicio de otra actividad
  • Diseño de hilos múltiples de Android Service
  • ¿Hay una alternativa onBackPressed () para un servicio?
  • Android - vistas de servicio
  • ¿Cómo saber cuántas aplicaciones se ejecutan en segundo plano en android?
  • Iniciar el servicio en el arranque, pero no toda la aplicación de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.