如何在不显示通知的情况下在 Oreo 中设置徽章计数?
How to set badge count in Oreo without showing a notification?
我曾经使用 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 中有什么方法可以实现我以前做过的同样的事情,即只显示 'notification dot' 或附加到应用程序图标的数字?
抱歉,除了您描述的 Notification
场景外,没有 SDK 级支持在启动器图标上显示数字或其他标记。
将通知渠道的重要性设置为
IMPORTANCE_MIN
喜欢int importance = NotificationManager.IMPORTANCE_MIN;
然后将频道创建为 -
NotificationChannel nChannel = new NotificationChannel
(channelId, title, importance);
这将设置徽章计数(显示在长按图标上)而不通知用户系统托盘中的任何通知。 虽然通知会在托盘里,但不会弹出,静静地驻留在那儿。
我曾经使用 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 中有什么方法可以实现我以前做过的同样的事情,即只显示 'notification dot' 或附加到应用程序图标的数字?
抱歉,除了您描述的 Notification
场景外,没有 SDK 级支持在启动器图标上显示数字或其他标记。
将通知渠道的重要性设置为
IMPORTANCE_MIN
喜欢int importance = NotificationManager.IMPORTANCE_MIN;
然后将频道创建为 -
NotificationChannel nChannel = new NotificationChannel
(channelId, title, importance);
这将设置徽章计数(显示在长按图标上)而不通知用户系统托盘中的任何通知。 虽然通知会在托盘里,但不会弹出,静静地驻留在那儿。