如何使用多个启动器处理Android通知徽章?

时间:2018-08-21 11:27:30

标签: android android-activity notifications android-8.0-oreo notification-channel

自Android 8起,所有通知都应分配给某个NotificationChannel。就我而言,问题在于该应用具有多个启动器,并且徽章显示在每个启动器上。

因此,我可以为每个NotificationChannel禁用徽章,但无论如何用户都可以将其打开。

是否可以将“ NotificationChannel”连接到特定的启动器活动?我还没有发现任何存在的API,也没有提到这是目前的局限性。

1 个答案:

答案 0 :(得分:0)

您可以禁用每个通道的徽章 例如。与mChannel. setShowBadge(false)

  

设置发布到此频道的通知是否可以在启动器中显示为应用程序图标标志。 仅可在将通道提交到NotificationManager.createNotificationChannel(NotificationChannel)之前进行修改。

...已为NotificationChannel分配了一些channelId

方法setGroup()  / getGroup() canShowBadge() 也显得很重要。

因此,您必须为每个启动器定义频道(或至少两个,以便至少有一个不显示徽章的频道)-然后,您可以为其中一些徽章禁用徽章,具体取决于通知的频道正在发送。

还有NotificationCompat.Builder(Context context, String channelId)

方法.setShortcutId (String shortcutId)

  

如果此通知与启动器快捷方式重复,则设置启动器的ID,以防启动器要隐藏快捷方式。

LauncherApps可以提供对这些快捷方式的访问;

,并且至少可以从ShortcutInfo获取徽章图标。

android.intent.action.BADGE_COUNT_UPDATE用于股票Android Oreo。

当前,只有Sony启动器允许使用com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME定义“活动”。