Как подсчитать количество уведомлений и отобразить один значок в Android?

У меня есть несколько уведомлений на Android, но когда я отправляю сообщение с моего веб-сервера, устройство Android создает новый значок уведомления в строке состояния. Я хочу подсчитать количество непрочитанных уведомлений, отобразить их на statusbar с одним значком, и когда уведомление будет прочитано, уведомление должно изменить количество непрочитанных уведомлений. Как мне это сделать? Это выглядит как «3 Others» на этом изображении: Иконка уведомления

Solutions Collecting From Web of "Как подсчитать количество уведомлений и отобразить один значок в Android?"

Проверьте ответ здесь: Как предоставить счетчик, если есть несколько уведомлений

Вам просто нужно установить Notification.number :

 Notification notification = new Notification(R.drawable.direction, "Cool Notification", System.currentTimeMillis()); /********LIKE THIS*********/ notification.number = notificationCount++; /********LIKE THIS*********/ notification.setLatestEventInfo(context, "Cool Notification Title", "updated notificaiton message", null); NotificationManager nm = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE); nm.notify(R.id.my_motification, notification); 

Вы должны отправить свое уведомление с помощью метода NotificationManager.notify с одинаковым идентификатором. Как указывается в документации, идентификатор является уникальным идентификатором для этого уведомления в вашем приложении. Если вы повторно используете один и тот же идентификатор, он просто обновит текст и номер для этого уведомления.

Чтобы проверить, когда пользователь нажимает на уведомление, вам необходимо предоставить PendingIntent (см. Руководство). Чтобы проверить, когда пользователь очищает уведомления, вам необходимо использовать Notification.Builder , доступный только на уровне Api Level 11.

Ну эти коды работают для меня:

 Notification n = new Notification(R.drawable.yourownpicturehere, getString(R.string.noticeMe), System.currentTimeMillis()); PendingIntent i=PendingIntent.getActivity(this, 0, new Intent(this, NotifyActivity.class),0); n.setLatestEventInfo(getApplicationContext(), getString(R.string.title), getString(R.string.message), i); n.number=++count; n.flags |= Notification.FLAG_AUTO_CANCEL; n.flags |= Notification.DEFAULT_SOUND; n.flags |= Notification.DEFAULT_VIBRATE; n.ledARGB = 0xff0000ff; n.flags |= Notification.FLAG_SHOW_LIGHTS; // Now invoke the Notification Service String notifService = Context.NOTIFICATION_SERVICE; NotificationManager mgr = (NotificationManager) getSystemService(notifService); mgr.notify(NOTIFICATION_ID, n); 

Следуйте этой ссылке для полного учебника.
Я думаю, что число n.number=++count; Является ответственным за подсчет уведомления

Для каждого номера вам понадобится другое растровое изображение и установите значок, чтобы отобразить растровое изображение, соответствующее количеству оставшихся уведомлений.

Чтобы отслеживать уведомления, вы можете просто установить счетчик в SharedPreferences, добавить его с каждым новым уведомлением и уменьшить на единицу при чтении уведомления (или на ноль, если вы одновременно показываете все уведомления).