如何在Oreo中设置徽章计数而不显示通知?

时间:2018-08-27 10:02:29

标签: android android-notifications android-8.0-oreo badge

我以前使用this library在应用程序图标中显示数字,如下所示:

ShortcutBadger.applyCount(context, numberToShow);

OneSignal在其Android SDK中也具有相同的功能。

现在在奥利奥(Oreo),随着通知渠道的引入,事情变得更加复杂。我可以创建一个频道。然后,我还可以创建如下通知:

public static void createNotification(Context context, int numberToShow) {
    Notification notification = new NotificationCompat.Builder(context, context.getString(R.string.notification_channel_id))
            .setContentTitle("Dummy Title")
            .setContentText("Dummy content")
            .setSmallIcon(R.drawable.app_icon)
            .setNumber(numberToShow)
            .build();
    NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);
    notificationManager.notify(0, notification);
}

但是,我必须使用此解决方案显示通知,我不需要,因此也不需要。在Oreo中,有什么方法可以实现我以前做过的事情,即仅显示“通知点”或附加在应用程序图标上的数字?

2 个答案:

答案 0 :(得分:3)

将通知渠道的重要性设置为

  

IMPORTANCE_MIN

int importance = NotificationManager.IMPORTANCE_MIN; 然后将频道创建为-

NotificationChannel nChannel = new NotificationChannel
                    (channelId, title, importance);

这将设置徽章计数(长按图标显示),而无需通知用户有关系统托盘中的任何通知。 尽管通知将在托盘中,但不会弹出并安静地驻留在其中。

答案 1 :(得分:2)

抱歉,但是您所描述的Notification场景除外,但没有SDK级支持在启动器图标上显示数字或其他标志。