# 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.