17

Is there a way I can programmatically disable notifications of individual programs? I'd like to build a list of all programs installed on my device then check the ones I don't want to receive notifications from and hit one button to disable/enable them.

I'm trying to build an app that will allow me to enable some/all notifications with a button click and re-enable them via either a button click or after a predetermined period of time. Does Android support that? NotificationManager doesn't seem to have those properties.

Mathew Pierce
  • 211
  • 1
  • 2
  • 5
  • you can see following answer may be help full to you http://stackoverflow.com/questions/9367196/detect-a-new-android-notification/9632076#9632076 – Hemantvc Jul 16 '13 at 03:41

4 Answers4

8

It is not possible to disable notifications from other apps. you can only control notifications generated by your own app.

Turn off notifications of an app programatically on Android

Android: is it possible to remove a system-managed notification programmatically?

Community
  • 1
  • 1
pgiitu
  • 1,671
  • 1
  • 15
  • 23
1

You can do it with shared preferences.

You can set notification settings in Shared Preferences and later if you receive any message then you can decide to show Notification or not.

Below Snippet is for ReactNative but you can use same for Native Apps as well

  /**
     * Toggle Notification Setting
     *
     * @param showNotifcation
     */
    @ReactMethod
    public void toggleNotification(boolean showNotifcation) {

        if (showNotifcation) {
            Toast.makeText(reactAppContext, "Notification Enabled", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(reactAppContext, "Notification Disabled", Toast.LENGTH_SHORT).show();
        }
        getPrefernceHelperInstace().setBoolean(reactAppContext, ENABLE_NOTIFICATION, showNotifcation);
    }

Later in Message service class

public class ReactFireBaseMessagingService extends FirebaseMessagingService {

    private NotificationUtils notificationUtils;

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {

        //Check if Notn are Enabled?
        if (getPrefernceHelperInstace().getBoolean(getApplicationContext(),
                ENABLE_NOTIFICATION, true)) {

          //Show Notification
        } else {
            Log.e(TAG, "ReactFireBaseMessagingService: Notifications Are Disabled by User");

        }
    }

See Code SNippet

https://github.com/hiteshsahu/react-native-fcm-android/blob/master/android/app/src/main/java/com/hitesh_sahu/fcm/service/ReactFireBaseMessagingService.java

enter image description here

Hitesh Sahu
  • 41,955
  • 17
  • 205
  • 154
0

no you cant, maybe on rooted device, but it's another story...

Eugene Pinchuk
  • 546
  • 3
  • 14
0

I can't remember what it was like in 2013 but I just use the settings app on the device. This has worked for at least 5 years on every Android device I've ever used.

It should be possible to build a MDM app that does the same. Something like "Test DPC".

The incredible Jan
  • 741
  • 10
  • 17