Mi aplicación usa AlarmManager y ha estado funcionando desde hace 4 años. Pero noté que comenzó a fallar en algunos dispositivos. Estoy bastante seguro de que el código es correcto (estoy usando WakefulBroadcastReceiver y setExactAndAllowWhileIdle para dispositivos con Doze) porque funciona...