Android O - 关闭通知渠道然后再打开,重要性级别始终重置为中等

Android O - turn off notification channel and then turn on, the importance level always reset to medium

在AndroidO,我们可以有不同优先级(重要性)的通知渠道。在我的代码中,我将频道重要性级别设置为紧急,即"Make sound and pop on screen"。

但是当我进入通知设置,关闭频道通知,然后再打开时,重要性级别将始终重置为中等("No sound"),这是默认级别。

我知道我们总是可以手动更改重要性级别,但是有没有办法让它记住频道关闭前的设置,以便当它再次打开时,它会自动恢复到设置它有过吗?

通知似乎没有记住您的重要性级别的功能。在代码中保存频道的默认重要性并不难。

这是我的测试:

我在开始时创建了一个重要性级别为 IMPORTANCE_HIGH 的通知渠道。然后从“设置”或长按通知弹出窗口关闭通知。重要性级别变为 IMPORTANCE_NONE。当我再次打开通知时,它变成了 IMPORTANCE_LOW.

以下示例代码用于检查在关闭和打开通知通道并将其设置为原始重要性后级别是否已降低。

    NotificationManager notificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    NotificationChannel notificationChannel = notificationManager.getNotificationChannel("your_channel_id");

    int importance = notificationChannel.getImportance();
    if (importance < NotificationManager.IMPORTANCE_HIGH && importance > 0 ) {
        notificationChannel.setImportance(NotificationManager.IMPORTANCE_HIGH);
    }