【发布时间】:2020-07-23 07:57:12
【问题描述】:
我想在我的 Android 应用的启动器图标上显示未读消息数。只有在用户阅读所有消息后才应将其清除。我在NotificationCompat.Builder 中尝试过setnumber()。但它没有显示通知计数。
我在两个安卓设备上执行了我的代码。
通知通道创建:
private void createNotificationChannel(String notificationChannelId, String systemTrayNotificationName){
Log.i("Tag","createNotificationChannel "+Build.VERSION.SDK_INT);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
CharSequence name = systemTrayNotificationName;
String description = systemTrayNotificationName;
int importance = NotificationManager.IMPORTANCE_HIGH;
NotificationChannel notificationChannel = new NotificationChannel(notificationChannelId, name,importance);
notificationChannel.setDescription(description);
notificationChannel.setShowBadge(true);
notificationChannel.canShowBadge();
NotificationManager notificationManager = getContext().getSystemService(NotificationManager.class);
notificationManager.createNotificationChannel(notificationChannel);
}
}
形成通知的代码
public void buildNotification(){
createNotificationChannel(NOTIFICATION_CHANNEL_ID,SYSTEM_TRAY_NOTIFICATION_NAME);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(getContext(), NOTIFICATION_CHANNEL_ID)
.setSmallIcon(R.drawable.ic_home_black_24dp)
.setLargeIcon(BitmapFactory.decodeResource(getContext().getResources(), R.mipmap.ic_launcher))
.setContentTitle("Title")
.setContentText("Content Text")
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setDefaults(NotificationCompat.DEFAULT_ALL)
.setNumber(5)
.setBadgeIconType(NotificationCompat.BADGE_ICON_NONE)
.setAutoCancel(true);
// Get an instance of the NotificationManager service
NotificationManagerCompat notificationManager =
NotificationManagerCompat.from(getContext());
// Issue the notification with notification manager.
notificationManager.notify(200, notificationBuilder.build());
}
【问题讨论】:
标签: android notifications android-8.0-oreo