如何在不显示通知的情况下在奥利奥中设置徽章计数?

Meh*_*med 6 android badge android-notifications android-8.0-oreo

我曾经使用这个库在应用程序图标中显示一个数字,如下所示:

ShortcutBadger.applyCount(context, numberToShow);
Run Code Online (Sandbox Code Playgroud)

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

现在在奥利奥,随着通知渠道的引入,事情对我来说变得复杂了。我可以创建一个频道。然后,我还可以创建一个通知如下:

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);
}
Run Code Online (Sandbox Code Playgroud)

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

Com*_*are 5

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


Kri*_*hna 5

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

IMPORTANCE_MIN

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

NotificationChannel nChannel = new NotificationChannel
                    (channelId, title, importance);
Run Code Online (Sandbox Code Playgroud)

这将设置徽章计数(显示在图标的长按上)而不通知用户系统托盘中的任何通知。虽然通知会在托盘中,但不会弹出并安静地驻留在那里。