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