Priority Calls

Let the people who matter reach you — even when nobody else can.

Android Kotlin Pixel
↓ Download APK Android 8.0+ · See install instructions below

The problem: You put your phone on silent, Do Not Disturb, or bedtime mode to get peace — and then miss the one call that actually mattered.

What it does

Priority Calls is a small Android app that watches for incoming calls from a list of contacts you mark as priority. When one of them rings, the app temporarily overrides silent mode, Do Not Disturb, and bedtime mode so the phone rings the way it would any other time — then puts everything back exactly as it was when the call ends.

If you miss the call, it also plays an audible alert so you notice.

Why it exists

Android’s built-in Do Not Disturb has a “priority contacts” exception, but in practice it behaves inconsistently across versions and OEM skins. Bedtime mode layers on top of it and silences things that DND alone wouldn’t. And if the phone is simply on silent, no amount of contact-starring will make it ring.

The goal of this project is simple: if a specific, trusted person calls, the phone rings. Not “it shows a notification.” Not “it vibrates quietly on the table.” It rings. Everyone else gets the silence you asked for.

How it works

  1. You add priority contacts Pick them from your contacts list in the app. A toggle lets you enable or disable the whole thing without losing your list.
  2. The app listens for incoming calls A broadcast receiver checks each ringing call against your priority list (with UK mobile number normalisation so 07… and +447… match).
  3. It overrides silent / DND / bedtime The current ringer mode, volume, and DND interruption filter are saved, then temporarily set so the phone actually rings.
  4. It restores your original state When the call ends, everything goes back to exactly how you had it. The saved state is persisted, so even if Android kills the process mid-call, your settings still come back.

Installing it yourself

This isn’t on the Play Store — you install the APK directly. The process is safe but Android will (rightly) warn you along the way.

  1. Download the APK to your phone Open this page on the phone and tap the Download APK button above, or transfer priority-calls.apk from your computer over USB / AirDrop / email.
  2. Allow installs from this source Open the APK from your Files app or browser downloads. Android will block it the first time and offer a settings shortcut — tap it and toggle Allow from this source for whichever app you opened the APK from (usually Files or Chrome).
  3. Tap install Go back and open the APK again. You’ll see the standard Android install dialog. Play Protect may warn that it can’t scan the app — choose Install anyway.
  4. Grant the permissions Open the app and work through the buttons on the main screen. They each open the right system settings page. See the next section for what each permission is for.
  5. Add your priority contacts Tap Add contact, pick someone from your contacts, and you’re done. The toggle at the top turns the whole thing on and off without losing your list.

Permissions and why they’re needed

The app asks for a handful of permissions. None of them leave your phone — there’s no network code in this app at all.

  • Notification listener access BIND_NOTIFICATION_LISTENER_SERVICE Lets the app see missed-call notifications posted by the dialer, so it can play an audible alert if you missed a priority call while the phone was silent.
  • Do Not Disturb access ACCESS_NOTIFICATION_POLICY Required to temporarily override DND / bedtime mode when a priority contact calls, and to restore your original DND state the moment the call ends.
  • Modify audio settings MODIFY_AUDIO_SETTINGS Used to switch the ringer from silent/vibrate to normal and raise the ring volume to something audible — then put both back exactly as they were.
  • Phone state READ_PHONE_STATE Lets the app know when a call is ringing, picked up, or ended. This is how it knows when to apply the override and when to restore your settings.
  • Call log READ_CALL_LOG Needed alongside phone state on modern Android to receive the incoming caller’s number — without it, the app can’t tell whether the caller is on your priority list.
  • Contacts READ_CONTACTS Used when you tap Add contact to pick someone from your address book, and to match incoming numbers against the contacts you’ve marked as priority.

Scope

Right now this is targeted at Google Pixel phones. The APIs it uses are standard Android, but Samsung, Xiaomi, and other OEMs layer extra silent/DND behaviour on top that the app doesn’t currently account for. Pull requests welcome.

Requires Android 8.0 (API 26) or later. Needs permissions for reading phone state, the call log, contacts, and notification policy access.