Back to Selected Work
Android (Native & Flutter)Kotlin & Platform ChannelsDND Override • Audio Focus

Critical Alert & DND Override Engine (Android Audio)

High-priority emergency alerting engine engineered to bypass Android's Silent and Do Not Disturb (DND) modes for mission-critical notifications.

Domain
Mobile Applications
My Role
Mobile Systems Engineer
Source Code
Proprietary
Primary Stack
Flutter, Kotlin
The Problem & Motivation

Why this was built

In emergency response, hospital incident paging, and critical security alerting, missed notifications can be catastrophic. When a user's phone is set to Silent or Do Not Disturb, standard mobile push notifications are silenced by default OS policies.

Architecture & Execution

Technical Approach

Engineered a native Android system bridge using Kotlin platform channels. Implemented AudioManager stream routing to STREAM_ALARM, requested ACCESS_NOTIFICATION_POLICY to manage INTERRUPTION_FILTER states, and acquired AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE so critical alert tones sound with haptic vibration even when the handset is muted.

Technologies Used:
FlutterKotlinAndroid SDKPlatform ChannelsAudioManagerNotificationManager
Android Native AudioManager & DND Policy Channel
Source Snapshot
// Android Native Platform Channel: DND & Audio Stream Override
class AudioAlertService(private val context: Context) {
    private val audioManager = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager
    private val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager

    fun triggerCriticalAlarm(soundUri: Uri) {
        // 1. Verify and manage Do Not Disturb policy filter
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && notificationManager.isNotificationPolicyAccessGranted) {
            notificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_ALL)
        }

        // 2. Request transient exclusive audio focus on STREAM_ALARM
        val audioAttributes = AudioAttributes.Builder()
            .setUsage(AudioAttributes.USAGE_ALARM)
            .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
            .build()

        val focusRequest = AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE)
            .setAudioAttributes(audioAttributes)
            .build()

        audioManager.requestAudioFocus(focusRequest)

        // 3. Play sound at emergency volume level
        val mediaPlayer = MediaPlayer().apply {
            setAudioAttributes(audioAttributes)
            setDataSource(context, soundUri)
            prepare()
            start()
        }
    }
}

Key Architectural Features & Outcomes

01

Native Kotlin platform channel bridging Flutter to Android AudioManager

02

Do Not Disturb (DND) interruption filter policy management (ACCESS_NOTIFICATION_POLICY)

03

Transient exclusive audio focus acquisition (AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE)

04

Direct routing to STREAM_ALARM ensuring sound plays regardless of ringer state

05

Haptic vibration pattern synchronization for sensory fail-safes