Java 以编程方式启用通知通道

Java 以编程方式启用通知通道,java,android,android-notifications,android-8.0-oreo,android-settings,Java,Android,Android Notifications,Android 8.0 Oreo,Android Settings,我能够检查通道是否已启用/禁用 NotificationChannel channel = manager.getNotificationChannel(channelId); boolean isEnabled = channel.getImportance() != IMPORTANCE_NONE; 但如果通道未启用,则我希望通过将其设置为高重要性来启用它 if (!isEnabled) { channel.setImportance(NotificationManager.IMPORTA

我能够检查通道是否已启用/禁用

NotificationChannel channel = manager.getNotificationChannel(channelId);
boolean isEnabled = channel.getImportance() != IMPORTANCE_NONE;
但如果通道未启用,则我希望通过将其设置为高重要性来启用它

if (!isEnabled) {
channel.setImportance(NotificationManager.IMPORTANCE_HIGH);
manager.createNotificationChannel(channel);
}
问题是通道没有更新,只有在启用的情况下,我尝试使用重要性\u NONE禁用它时,它才起作用,但不起作用

我尝试删除频道并创建一个具有不同id的新频道,但没有创建具有相同id的新频道


如何避免这种情况?

如果不删除频道,就无法通过编程方式更改频道的重要性

因为用户可能已手动更改了重要性

要以编程方式实现这一点,请获取通道并使用新id创建新通道。 删除旧频道。 如果使用以前的id创建频道,您的更改将不会反映出来


如需参考,请检查WhatsApp应用程序尝试更改应用程序中的铃声,并查看左下角的频道内x频道已删除消息

频道是否可由第三方应用程序启用/禁用。那么拥有一个频道的用例是什么?您无法更改频道优先级。您可能只能操作自己应用的频道。而不是其他应用程序。看起来可以通过编程禁用它们,将重要性设置为“无”