Android 如何在状态栏上隐藏 NotificationCompat.Builder 通知的图标?
Posted
技术标签:
【中文标题】Android 如何在状态栏上隐藏 NotificationCompat.Builder 通知的图标?【英文标题】:Android how to hide NotificationCompat.Builder notification`s icon on status bar? 【发布时间】:2013-03-31 20:18:19 【问题描述】:我的问题很简单,但很长时间都无法解决,所以我在这里问。
如何隐藏状态栏中显示的正在进行的通知图标?我正在使用NotificationCompat.Builder
对象创建通知。我试图跳过(当未选中显示图标的选项时)builder.setSmallIcon()
函数调用,但这导致通知屏幕上没有通知。
【问题讨论】:
【参考方案1】:从 android 4.1 (API 16) 开始,可以指定通知的priority
。如果您将set that flag 转为PRIORITY_MIN
,则通知图标不会显示在状态栏上。
builder.setPriority(NotificationCompat.PRIORITY_MIN);
从 Android 8.0 Oreo(API 级别 26)开始,您必须创建一个 NotificationChannel
并将其 importance
设置为 IMPORTANCE_MIN
:
NotificationChannel channel =
new NotificationChannel(channelId, channelName, NotificationManager.IMPORTANCE_MIN);
notificationManager.createNotificationChannel(channel);
...
builder.setChannelId(channel.getId());
【讨论】:
这是一个有用的解决方案,但它对我不起作用,因为我倾向于针对早期的 android 版本。 只是在 Android 10 中的一个注释,此解决方案仍然有效但通知在通知阴影中折叠,因此用户需要展开它才能看到它。 【参考方案2】:如何隐藏状态栏中显示的正在进行的通知图标?
你没有。
我尝试跳过(当未选中显示图标的选项时)builder.setSmallIcon() 函数调用,但这导致通知屏幕中没有通知。
正确。由于提出Notification
的主要目的是在状态栏中放置一个图标,因此没有办法不在状态栏中放置一个图标。
【讨论】:
好的,感谢您的澄清。 :) 那么,如果我理解正确,当其他应用程序提供在运行时事件中显示/隐藏图标的选项时,它们会使用整个通知进行操作吗?附:我会提高你的回答率,但我没有最低声誉水平。 @aphelion:“所以,如果我理解正确,当其他应用程序提供在运行时事件中显示/隐藏图标的选项时,它们会使用整个通知进行操作?” ——大概。以上是关于Android 如何在状态栏上隐藏 NotificationCompat.Builder 通知的图标?的主要内容,如果未能解决你的问题,请参考以下文章