以编程方式启用通知通道

时间:2018-06-07 14:09:47

标签: java android android-notifications android-8.0-oreo android-settings

我可以使用

检查通道是否已启用/禁用
NotificationChannel channel = manager.getNotificationChannel(channelId);
boolean isEnabled = channel.getImportance() != IMPORTANCE_NONE;

但是如果未启用该频道,那么我想通过将其设置为IMPORTANCE_HIGH来启用它

if (!isEnabled) {
channel.setImportance(NotificationManager.IMPORTANCE_HIGH);
manager.createNotificationChannel(channel);
}

问题是频道没有更新,它只有在尝试使用IMPORTANCE_NONE禁用它时才有效,以防它被启用,但不能解决方法。

我尝试删除该频道,并创建一个具有不同ID的新频道,但有效但不能创建具有相同ID的新频道。

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果不删除频道,则无法以编程方式更改频道重要性。

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

以编程方式实现此功能以获取频道并使用新ID创建新频道。 删除旧频道。  如果创建具有先前ID的频道

,则您的更改不会反映出来

供参考检查WhatsApp应用程序尝试从应用程序更改铃声并在左下角的通道中查看 x频道已删除消息