20

In an Android app, I have a button that I want to have the functionality of opening the App Notification settings (in Android settings).

Screenshot of Android's notification settings for the Camera application

I can open the Android settings with this

startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0);

but I want to open directly on my app notification settings

Alternative

If there is a way to turn the "Block notifications" on and off programmatically that would be ok too.

Cœur
  • 37,241
  • 25
  • 195
  • 267
Thought
  • 5,326
  • 7
  • 33
  • 69

3 Answers3

57

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.

Henry
  • 17,490
  • 7
  • 63
  • 98
Sterling
  • 6,365
  • 2
  • 32
  • 40
  • 1
    how to open app `notification category` (Default) ? on orio. where we can change sound,vibration and other setting. – Sagar Oct 17 '18 at 07:54
  • 6
    In order to open settings of a particular channel use new Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS) – Dmitry Grushin Jun 06 '19 at 20:17
17

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.

Community
  • 1
  • 1
Bryan Herbst
  • 66,602
  • 10
  • 133
  • 120
0
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivity(intent);
Makvin
  • 3,475
  • 27
  • 26
  • how to open app notification category (Default) ? on orio. where we can change sound,vibration and other setting – Sagar Oct 17 '18 at 07:54
  • 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, "channel_id"); startActivity(settingsIntent); – Makvin Oct 18 '18 at 05:13