Files
pluriwave/docs/alarmas-android.md
T
FreeTLab a3a648c633
Build & Deploy Pluriwave / Análisis de código (push) Successful in 15s
Build & Deploy Pluriwave / Build APK + AAB release (push) Successful in 4m21s
feat(alarm): complete musical alarm flows
2026-05-22 00:40:01 +02:00

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

  1. Flutter calcula la próxima ejecución según tipo, días, vacaciones y omisiones.
  2. ServicioAlarmasAndroid envía la programación al MethodChannel pluriwave/alarm_scheduler.
  3. AlarmScheduler registra:
    • alarma principal con setAlarmClock;
    • preaviso silencioso 30 minutos antes con setExactAndAllowWhileIdle.
  4. PluriWaveAlarmReceiver abre la app cuando suena la alarma.
  5. 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_LOCK y 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.