【问题标题】:Android how to hide NotificationCompat.Builder notification`s icon on status bar?Android 如何在状态栏上隐藏 NotificationCompat.Builder 通知的图标?
【发布时间】:2013-03-31 20:18:19
【问题描述】:

我的问题很简单,但很长时间都无法解决,所以我在这里问。

如何隐藏状态栏中显示的正在进行的通知图标?我正在使用NotificationCompat.Builder 对象创建通知。我试图跳过(当未选中显示图标的选项时)builder.setSmallIcon() 函数调用,但这导致通知屏幕上没有通知。

【问题讨论】:

    标签: android icons android-notifications android-statusbar


    【解决方案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:“所以,如果我理解正确,当其他应用程序提供在运行时事件中显示/隐藏图标的选项时,它们会使用整个通知进行操作?” ——大概。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多