Access application notification settings programmatically
There is no public API that will allow you to deep link into your application's notification settings directly.
You can use Settings.ACTION_APPLICATION_DETAILS_SETTINGS
to deep link to your application's settings, but this will not take you directly to the notifications screen.
Any way to link to the Android notification settings for my app? has a solution that may work, but since it is not a part of the official API it is not guaranteed to work on all devices or for future versions of Android.
if there is a way to turn the "Block notificaations" on and off programatically that would be ok too
Absolutely not. Allowing an application to programmatically turn it's notifications on and off defeats the purpose of giving the user control over turning notifications on and off.
I know this is an old question, but for those finding it in the future: as of Oreo (API level 26) there is now an official deeplink Intent
for a specific app's notification settings.
Intent settingsIntent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.putExtra(Settings.EXTRA_APP_PACKAGE, getPackageName())
.putExtra(Settings.EXTRA_CHANNEL_ID, MY_CHANNEL_ID);
startActivity(settingsIntent);
The EXTRA_CHANNEL_ID
parameter is optional, and according to the docs, will "highlight that channel." FWIW, as of Android 8.1, I can't see that it makes any difference. If you are adding this parameter, ensure your Action
is ACTION_CHANNEL_NOTIFICATION_SETTINGS
.