Android O - 关闭通知渠道后再打开,重要性级别总是重置为中等水平。

7
在Android O中,我们可以使用不同的通知渠道来设置不同的优先级(重要性)。在我的代码中,我将通道重要性级别设置为“紧急”,即“发出声音并弹出屏幕”。
但是当我进入通知设置,关闭通道通知,然后重新打开时,重要性级别总是会重置为中等(“无声”),这是默认级别。
我知道我们可以手动更改重要性级别,但是否有一种方法可以在关闭通道之前记住设置,以便在再次打开通道时,它会自动恢复到之前的设置?
1个回答

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

如果用户想手动更改为“中等重要性”,那么这将有效地剥夺他们使用通知渠道的能力。 - Daniel Jonker
你是对的。要么你需要让用户在你的应用程序中配置确切的重要性级别,要么让用户更改移动设备的设置。我的示例只是答案的简单解决方案。 - flame3
2
用户关闭通知渠道后,无法通过编程方式将其重置为IMPORTANCE_HIGH的重要性级别。只有用户可以通过设置更改它。根据文档,“设置此通知渠道的中断级别。仅在将通知渠道提交给NotificationManager.createNotificationChannel(NotificationChannel)之前可修改。” - Dr. DS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接