1.6 KiB
Alarmas Android en PluriWave
PluriWave programa las alarmas con AlarmManager.setAlarmClock, porque es el camino Android pensado para despertadores visibles y de alta fiabilidad. Flutter conserva la configuración, la UI, la emisora y los fallbacks; Android se encarga de despertar la app en el momento exacto.
Flujo
- Flutter calcula la próxima ejecución según tipo, días, vacaciones y omisiones.
ServicioAlarmasAndroidenvía la programación alMethodChannel pluriwave/alarm_scheduler.AlarmSchedulerregistra:- alarma principal con
setAlarmClock; - preaviso silencioso 30 minutos antes con
setExactAndAllowWhileIdle.
- alarma principal con
PluriWaveAlarmReceiverabre la app cuando suena la alarma.- Flutter muestra
PantallaAlarmaSonando, intenta reproducir la emisora y activa audio interno si la radio falla o tarda demasiado.
Permisos
SCHEDULE_EXACT_ALARM: necesario en Android 12+ para exactitud.POST_NOTIFICATIONS: necesario en Android 13+ para el preaviso silencioso.WAKE_LOCKy foreground media playback ya están declarados para la reproducción.
Fallbacks
Si la emisora no existe, falla o no empieza a reproducir en unos segundos, la pantalla usa sonidos internos incluidos en assets/audio/. Esto evita una alarma silenciosa por problemas de red o de radio.
Vacaciones y omisiones
Las vacaciones se guardan en Flutter. Las alarmas configuradas para pausar en vacaciones saltan automáticamente esos rangos y muestran la próxima fecha válida. El preaviso permite omitir la siguiente ejecución abriendo la app y aplicando la misma lógica de omisión persistente.