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

lai*_*uan 7 android android-notifications android-8.0-oreo

在Android O中,我们可以使用具有不同优先级(重要性)的不同通知渠道。在我的代码中,我将频道重要性级别设置为“紧急”,即“在屏幕上发出声音并弹出”。

但是,当我转到通知设置时,关闭通道通知,然后再打开它,重要性级别将始终重置为中级(“无声音”),这是默认级别。

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

fla*_*me3 2

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

这是我的测试:

我一开始创建了一个重要性级别为 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);
    }
Run Code Online (Sandbox Code Playgroud)

  • 用户关闭通知通道后,无法以编程方式将通知通道的重要性级别再次设置为 IMPORTANCE_HIGH。只有用户可以通过设置更改它。根据文档。“设置此通知通道的中断级别。只能在通道提交给NotificationManager.createNotificationChannel(NotificationChannel)之前修改。” (2认同)