Programmatically disabling/enabling notifications

匿名 (未验证) 提交于 2019-12-03 01:57:01

问题:

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.

回答1:

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?



回答2:

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



回答3:

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



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!