Quiero detectar "inactividad del usuario" en mi aplicación de Android. Para ser más precisos: quiero detectar si el usuario NO ha realizado ninguna interacción con mi aplicación (tocando la pantalla, desplazándose, ingresando textos ...) durante un tiempo específico. Técnicamente utilizo un temporizador que se restablece en cada interacción (usuario).Android: Detectar inactividad del usuario/Detectar (teclado) entrada de teclado
En mi actividad, puedo reemplazar el método onUserInteraction para detectar interacciones como el desplazamiento, tocando la pantalla ...
@Override
public void onUserInteraction(){
resetInactiveTimer();
}
Desafortunadamente, onUserInteraction no se llama cuando el usuario interactúa con el teclado en pantalla. Creo que la razón es que el teclado suave no es parte de mi actividad.
Para los textos de edición en mi aplicación que utiliza TextWatcher y la OnTextChanged método que funciona bien. Pero mi aplicación también contiene un WebView que carga páginas web arbitrarias. Por supuesto, algunas páginas web pueden contener campos de entrada y no sé cómo detectar que el usuario interactúa con el teclado virtual para editar esos campos de texto.
No se requieren métodos de entrada para enviar eventos clave. De hecho, el teclado de gelatina de gelatina no envía ningún evento clave cuando se presiona el espacio de retroceso. –
Pero aquí el problema es que onUserInteraction no se llama cuando está escribiendo en edittext. Además, si quiero usar onKeyDown o onKey, tengo que configurar el oyente de pulsación de teclas para cada texto de edición. ¿Existe alguna opción general en la que pueda rastrear cualquier evento de pulsación de tecla desde el teclado virtual? – Smeet