Creo que no hay ningún hilo similar, así que empiezo compartiendo mi experiencia a ver cuánta gente ha estado tocando cosas chulas.
Automatización en Android abarca muchas cosas. La gente suele utilizar apps como Tasker o MacroDroid, aunque son bienvenidas experiencias con otras apps o formas de automatizar cosas en android, claro.
Y ahora mi libro. Empecé automatizando cosas un poco más "en serio" porque quería tener las apps del curro (ej: el email, teams o slack) instaladas en el móvil pero no quería que me molestasen constantemente ni fuera de hora. Así que tiré de un par de apps para simplificar el flujo de trabajar, descansar y una forma de cambiarlo todo según paso por fines de semana y vacaciones.
Con macrodroid y buzzkill me hice lo siguiente:
Primero los 2 modos que controlan todo; work y vacation.
El modo trabajo se activa si no estoy de vacaciones. Empieza a una hora determinada por la mañana con una notificación persistente que me deja activar/desactivar las notificaciones de las apps de trabajo gracias a una regla de buzzkill:
Esto es super útil cuando, por el motivo que sea, no quiero/puedo estar en el portátil pero sigo queriendo estar disponible. Y a la vez me evito estar currando y que el móvil vibre constantemente con mensajes, porque puedo desactivar/activar las notificaciones desde la notificación persistente.
Cuando ya me toca cerrar el día, se descarta la notificación persistente y se activa la regla de buzzkill para que no me llegue ningún mensaje del curro. Hay más cosas aparte (ej me salta una notificación 15 minutos antes para ir organizando cerrar el día de hoy + organizar para la primera hora de mañana), pero esto es lo que tiene más magia:
Esto sólo ocurre si no estoy de vacaciones. Para controlar las vacaciones, utilizo un calendario en google. Si entro o salgo de un evento de vacaciones, se activa/desactiva el modo vacaciones y además me cambio las alarmas del móvil a través de un intent de sleep as android, para no tener que tocar las alarmas yo manualmente.
Esto es lo que se ejecuta cuando se me acaban las vacaciones:
# enable work alarm
am broadcast --user 0 -p com.urbandroid.sleep -a com.urbandroid.sleep.alarmclock.ALARM_STATE_CHANGE --es alarm_label Work --ez alarm_enabled TRUE
# disable vacation alarm
am broadcast --user 0 -p com.urbandroid.sleep -a com.urbandroid.sleep.alarmclock.ALARM_STATE_CHANGE --es alarm_label Vacation --ez alarm_enabled FALSE
(esto en realidad lo encontré en un post de reddit jeje)
Es probable que añada algunas cosas más con el tiempo. Por ejemplo, que si es fin de semana o estoy de vacas y estoy desconectado del wifi de mi casa o conectado al PC por bluetooth, que me autoretrase la alarma 1 hora.
He visto que el tema de los intent y adb tiene bastante truco por no estar bien documentado. Si alguien tiene experiencia con el tema le agradecería mil si pone ejemplos de cosas que ha tocado, porque lo he visto super difícil de investigar... por ejemplo buscando logs relacionados con sleep as android salen muchos logs y muy verbosos todos y no son fáciles de interpretar. Ejemplo:
El comando se traduce más o menos como "busca en el log de adb
todas las líneas que contengan urbandroid
" (es parte del package name de la app de sleep as android).