Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Programmatically disabling/enabling notifications

Tags:

android

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.

like image 408
Mathew Pierce Avatar asked Jul 16 '13 03:07

Mathew Pierce


2 Answers

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?

like image 114
pgiitu Avatar answered Oct 30 '22 00:10

pgiitu


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

like image 29
Hitesh Sahu Avatar answered Oct 30 '22 01:10

Hitesh Sahu