首页 文章

以编程方式禁用/启用通知

提问于
浏览
6

有没有办法可以编程方式禁用单个程序的通知?我想 Build 一个安装在我的设备上的所有程序的列表,然后检查我不想接收通知的那些程序,并点击一个按钮来禁用/启用它们 .

我正在尝试构建一个应用程序,允许我通过单击按钮启用一些/所有通知,并通过按钮单击或在预定的一段时间后重新启用它们 . Android支持吗? NotificationManager似乎没有这些属性 .

3 回答

  • 3
  • 0

    You can do it with shared preferences.

    您可以在共享首选项中设置通知设置,如果收到任何消息,您可以决定是否显示通知 .

    Snippet下面是ReactNative,但您也可以使用相同的Native Apps

    /**
         * 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);
        }
    

    稍后在Message服务类中

    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");
    
            }
        }
    

    请参阅代码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

  • 2

    不,你不能,也许在root设备上,但这是另一个故事......

相关问题