Je souhaite implémenter notifications empilées sur Android Wear Pour ce faire, je crée 1 notification récapitulative et N notifications individuelles pour chaque "article". Je souhaite que seul le résumé soit affiché sur le téléphone. Voici mon code:
private void showNotifications() {
NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
showNotification1(notificationManager);
showNotification2(notificationManager);
showGroupSummaryNotification(notificationManager);
}
private void showNotification1(NotificationManager notificationManager) {
showSingleNotification(notificationManager, "title 1", "message 1", 1);
}
private void showNotification2(NotificationManager notificationManager) {
showSingleNotification(notificationManager, "title 2", "message 2", 2);
}
protected void showSingleNotification(NotificationManager notificationManager,
String title,
String message,
int notificationId) {
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setContentTitle(title)
.setContentText(message)
.setSmallIcon(R.mipmap.ic_launcher)
.setGroupSummary(false)
.setGroup("group");
Notification notification = builder.build();
notificationManager.notify(notificationId, notification);
}
private void showGroupSummaryNotification(NotificationManager notificationManager) {
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setContentTitle("Dummy content title")
.setContentText("Dummy content text")
.setStyle(new NotificationCompat.InboxStyle()
.addLine("Line 1")
.addLine("Line 2")
.setSummaryText("Inbox summary text")
.setBigContentTitle("Big content title"))
.setNumber(2)
.setSmallIcon(R.mipmap.ic_launcher)
.setCategory(Notification.CATEGORY_EVENT)
.setGroupSummary(true)
.setGroup("group");
Notification notification = builder.build();
notificationManager.notify(123456, notification);
}
Cela fonctionne très bien sur Android 5.1, seul le résumé est affiché dans la barre de notification du téléphone:
Mais sur Android 4.4, il affiche également les notifications individuelles 1 et 2:
Dans les deux cas, les notifications sur Android Wear sont affichées dans une pile, comme vous le souhaitez. Comment puis-je faire Android 4.4 n'afficher que la notification récapitulative dans la barre de notification?
Corrigé cela en utilisant
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
au lieu de
NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
et remplacer NotificationManager par NotificationManagerCompat dans les signatures de méthode correspondantes.
Vous venez de supprimer la méthode showSingleNotification
et de remplacer
notificationManager.notify(123456, notification);
avec
notificationManager.notify(123456, builder);
et son travail bien.