Ring Calls and Vibrate Notifications on Android
I want calls to ring audibly, and I want notifications to vibrate silently.
Is that too much to ask for? Recent Android versions make this exceedingly reasonable configuration nearly impossible to implement. I’ll cut to the chase:
The solution
Android’s native Do Not Disturb (henceforth “DND”) feature is the perfect solution except that it doesn’t allow notifications to vibrate. So we’ll roll that feature ourselves:
- Enable DND and keep it turned on forever
- Allow calls to interrupt DND. On Android 11, this option is at
Settings > Sound > Do Not Disturb > People > Calls
- Install Tasker
Create a new “Do Disturb” profile that overrides the notification behavior of your permanent DND by triggering a 200ms vibration whenever a new notification arrives (optionally with your waking hours as a second constraint if you’re an extremely light sleeper like me):
I’ve been using this setup for six months now. The only downside is that I can no longer identify apps by their custom vibration patterns, but that’s a relatively small price to pay.
The non-solutions
My path to the solution above is littered with the bodies of many failed attempts, some documented below. Note that Android has two subtly annoying limitations to work around:
- Vibrate mode achieves the desired notification behavior, but Android offers no way to ring calls audibly in vibrate mode
- DND mutes notifications and allows calls to ring audibly, but Android offers no way to both vibrate and mute notifications during DND
Faking vibrate mode via inaudible notifications
Strategy: Remove notification audio directly.
- Permanently disable both DND and vibrate mode
- Roll your own vibrate mode by going into
Sound
settings and changing theDefault notification sound
to theNone
option (which might be located insideMy Sounds
)
Fatal flaw: Some apps use their own custom notification sounds, which still play.
Overriding system volume via PagerDuty
Strategy: Give up hope on ringing all calls audibly and settle for ringing only PagerDuty calls audibly.
- Permanently enable vibrate mode
- Go into the PagerDuty app’s settings and enable system volume override
Fatal flaw: That override option just flat out doesn’t work on my Pixel 2.
Temporarily unmuting the ringer via Tasker
Strategy: Stay in vibrate mode but use Tasker to temporarily disable vibrate mode during calls.
- Permanently enable vibrate mode
- Create a Tasker profile that disables vibrate mode whenever a call comes in and reenables vibrate mode when the call ends
Fatal flaw: Android doesn’t actually let you leave vibrate mode while ringing?!
Ringing on the media channel via Tasker
Strategy: Stay in vibrate mode and use Tasker to “ring” calls by simply playing an MP3 file that you specify.
- Permanently enable vibrate mode
- Follow these instructions to create a Tasker profile that plays an audio file when a call comes in
Fatal flaw: There’s an Android OS bug that causes the ringtone to continue looping forever?! The provided workaround doesn’t work on my Pixel 2.