Android Oreo系统无法将通知优先级设置为低的问题咨询
关于Android Oreo中通知渠道无法设置低重要性的问题
没错,这是Android Oreo(API 26)版本里一个挺让人头疼的系统限制!我自己做适配的时候也踩过这个坑:
- 当你创建Notification Channel时,哪怕你指定了
NotificationManager.IMPORTANCE_NONE、NotificationManager.IMPORTANCE_MIN或者NotificationManager.IMPORTANCE_LOW,系统都会自动把渠道的重要性拉到Medium(IMPORTANCE_DEFAULT)级别 - 确实没有直接的API能在Android Oreo上强行设置更低的通知重要性
这个限制是Google当时为了规范通知行为加的——防止应用默认创建完全无提示的通知渠道,导致用户错过重要信息。
如果你的业务需要低优先级的通知,有两个替代思路:
- 创建渠道后,引导用户手动进入系统设置,把该渠道的重要性手动调低
- 如果你只是需要通知静默展示,可以在构建Notification的时候调用
setSilent(true),再配合渠道的设置,能实现类似低重要性的效果
另外补充一下:这个问题在Android P(API 28)及以后的版本已经被修复了,在这些版本里你可以正常设置IMPORTANCE_MIN和IMPORTANCE_LOW来创建低优先级渠道。
内容的提问来源于stack exchange,提问作者Ray Li
相关产品推荐
相关产品推荐

