¿Es posible realizar un seguimiento cuando mi teléfono Android se inicia y cuando se apaga?

¿Dónde puedo obtener información sobre cuándo y a qué hora se apaga y se enciende mi teléfono Android? (apagar/iniciar, lo que significa que alguien presiona el botón de encendido para que se apague/se inicie O un programa que haga que se inicie o se apague).

La información debe tener un aspecto similar al siguiente:

================================================== =======
| Fecha | Tiempo | Operación | por |
================================================== =======
| 12 de diciembre de 2012 | 23:59 | Apagar | Usuario |
| 13 de diciembre de 2012 | 10:00 | Inicio | Usuario |
| 13 de diciembre de 2012 | 10:59 | Apagar | Programa |
| 13 de diciembre de 2012 | 14:16 | Inicio | Usuario |
================================================== =======

Si el apagado o el inicio es causado por un programa, sería mejor mostrar el nombre del programa que provocó el cierre.

Prefiere el método que no requiere enraizamiento y para la versión de Android por debajo de 4.

Solo para estar seguro, ¿está preguntando si el teléfono se apagó y se encendió por completo (es decir, un reinicio)? ¿O prefiere decir que la pantalla se apaga y se vuelve a encender (es decir, modo de suspensión)?
Además, sin root, cualquier aplicación que no sea del sistema no debería poder apagar el teléfono. Por lo tanto, la única vez que un teléfono se apaga o se reinicia es si el usuario lo dice específicamente (excluyendo eventos de hardware como que se agote la batería).
Tu dices. Vi que los teléfonos se reiniciaban repentinamente en un bloqueo del sistema (algo en mal estado en Dalvik Cache probablemente). Así que seguramente no fue un apagado iniciado por el usuario :)

Respuestas (1)

Mi recomendación estándar nuevamente aquí: Tasker , la solución de automatización más completa disponible para Android. Tasker puede reaccionar ante diferentes eventos y realizar tareas cuando ocurren. Así que podrías configurar dos perfiles:

  • Perfil "Inicio":
    • Condición: Arranque del dispositivo (esto es boot_completed))
    • Tarea: Escribir archivo (con su información especificada en los parámetros)
  • Perfil "Apagado":
    • Condición: Apagado del dispositivo
    • Tarea: Escribir archivo (con su información especificada en los parámetros)

Para el texto, puede usar variables como, por ejemplo %DATE, . La única dificultad será determinar si el apagado fue causado por el usuario o por un programa; no es una receta fácil aquí, especialmente para dispositivos no rooteados. Esta información podría extraerse de los registros del sistema de alguna manera; pero comenzando con JellyBean, esto requeriría permisos de root.

Me preguntaba a continuación si hay aplicaciones gratuitas con solo esta función. (Me gusta su recomendación, pero Tasker tiene demasiadas funciones útiles que sentí que me estaban abrumando). Al menos sé que no debería actualizar a JellyBean porque parece que JellyBean necesita que el usuario rootee el teléfono para obtener funciones básicas. (Me preguntaba por qué el teléfono JellyBean no está rooteado en primer lugar, ¿no sería mucho mejor?)
Claro, cada segunda respuesta que doy menciona a Tasker :) Es lo que uso, ya que es más flexible. Hay muchas aplicaciones similares gratuitas, pero no puedo decirle si es compatible con esto. En cuanto a la raíz: TODOS los teléfonos deberían venir rooteados si me preguntas, como todos los *nix vienen con la raíz y Windows con identificadores (oh, ups... el otro Windows con "Administrador")...
Intenté con Tasker pero no pude obtener la variable que muestra que el apagado o el inicio es causado por el usuario o un programa. Tampoco pude encontrar algo así SHUTDOWN_BYque me dijera qué programa/usuario causó el apagado. ¿Alguna forma de encontrar esta información?
Eso sería un poco más complicado: probablemente tendrá que analizar los registros del sistema para eso. No hay una Variable de Tasker que le diga qué causó el cierre. Si su dispositivo está rooteado, los comandos dmesgy logcatpueden resultar útiles, pero no tengo una receta completa lista.