Android: Detectar uso general por el usuario

Estoy trabajando en una aplicación que monitorea el uso del teléfono (específicamente, a qué hora se está usando). Actualmente, registro los tiempos de las llamadas telefónicas, los SMS, los MMS, el encendido de la pantalla, el apagado de la pantalla y el desbloqueo del teclado. Ahora quiero determinar cuándo el usuario realiza alguna interacción que no sea la que se menciona anteriormente. Me gusta

1) Uso de la aplicación (Detecta cuando una aplicación es iniciada por el usuario y / o cuando el usuario la está utilizando activamente)

Para esto, he estado jugando con el Administrador de actividades, pero no parece haber una buena manera de obtener la información que necesito. Tiene información sobre lo que está en primer plano, en segundo plano y qué servicios se están ejecutando, pero carece de información sobre la cantidad de uso, el tiempo de uso, el momento del lanzamiento de la aplicación, et

2) Interacción de pantalla general (Detecta cuando un usuario está interactuando con la pantalla de alguna / todas las formas)

Todavía tengo que encontrar alguna forma de detectar cualquier forma de interacción general de pantalla o teclado mientras mi actividad no está en primer plano. Cualquier ayuda aquí sería apreciada.

3) Otro (estoy abierto a otros 'eventos' que representarían a un usuario que interactúa con su teléfono)

stoy abierto a otras ideas sobre lo que podría buscar al detectar la actividad del usuario.

Respuestas a la pregunta(1)

Su respuesta a la pregunta