2

我有一个有效的实现,以检查是否启用了通道。

但是有没有办法以编程方式禁用通知通道?

我如何检查通道是否已启用:

    /**
     * Get the setting a user has applied to the notification channel.
     * If the android API level is < 26, it will return true if all notification
     * are enabled in general, false otherwise.
     *
     * @return true if the channel is enabled, false otherwise
     */
    public static boolean isChannelEnabled(String channelId) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            final NotificationManager notificationManager = App.get().getSystemService(NotificationManager.class);
            if (notificationManager == null) {
                return true;
            } else {
                final NotificationChannel c = notificationManager.getNotificationChannel(channelId);
                final boolean overallEnabled = notificationManager.areNotificationsEnabled();
                return overallEnabled && c != null && NotificationManager.IMPORTANCE_NONE != c.getImportance();
            }
        } else {
            return NotificationManagerCompat.from(App.get()).areNotificationsEnabled();
        }
    }


4

0 回答 0