Ich weiß nicht, wie man zwei oder mehr Benachrichtigungen in nur einer gruppiert und eine Nachricht wie "Sie haben zwei neue Nachrichten" anzeigt.Wie gruppiere ich Android-Benachrichtigungen wie WhatsApp?
Antwort
Schritte vom folgenden Code versorgt werden.
NotificationCompat.Builder:contains the UI specification and action information
NotificationCompat.Builder.build() :used to create notification (Which returns Notification object)
Notification.InboxStyle: used to group the notifications belongs to same ID
NotificationManager.notify():to issue the notification.
Verwenden Sie den folgenden Code, um eine Benachrichtigung zu erstellen und sie zu gruppieren. Fügen Sie die Funktion in einen Klick ein.
private final int NOTIFICATION_ID = 237;
private static int value = 0;
Notification.InboxStyle inboxStyle = new Notification.InboxStyle();
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.push_notify_icon);
public void buttonClicked(View v)
{
value ++;
if(v.getId() == R.id.btnCreateNotify){
NotificationManager nManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(this);
builder.setContentTitle("Lanes");
builder.setContentText("Notification from Lanes"+value);
builder.setSmallIcon(R.drawable.ic_launcher);
builder.setLargeIcon(bitmap);
builder.setAutoCancel(true);
inboxStyle.setBigContentTitle("Enter Content Text");
inboxStyle.addLine("hi events "+value);
builder.setStyle(inboxStyle);
nManager.notify("App Name",NOTIFICATION_ID,builder.build());
}
}
Für separaten Benachrichtigungen zuweisen unterschiedliche NOTIFICATION_IDs ..
Sie müssen die Benachrichtigung erstellen, sodass sie mit einer Benachrichtigungs-ID aktualisiert werden kann, indem Sie NotificationManager.notify(ID, notification)
anrufen.
Die folgenden Schritte müssen erstellt werden, um die Benachrichtigung zu aktualisieren:
- aktualisieren oder erstellen Sie ein
NotificationCompat.Builder
Objekt - Erstellen eines Benachrichtigungs Objekt von ihm
- Ausgabe der Mitteilung mit der gleichen ID Sie zuvor verwendet
Ein Beispiel aus dem android-Entwickler docs genommen:
mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// Sets an ID for the notification, so it can be updated
int notifyID = 1;
mNotifyBuilder = new NotificationCompat.Builder(this)
.setContentTitle("New Message")
.setContentText("You've received new messages.")
.setSmallIcon(R.drawable.ic_notify_status)
numMessages = 0;
// Start of a loop that processes data and then notifies the user
...
mNotifyBuilder.setContentText(currentText).setNumber(++numMessages);
// Because the ID remains unchanged, the existing notification is updated.
mNotificationManager.notify(notifyID, mNotifyBuilder.build());
...
Siehe auch den Android docs auf Stacking Benachrichtigungen https://developer.android.com/training/wearables/notifications/stacks.html
Rechts. Ich finde die API verwirrend: NotificationCompatBuilder.setGroup() -Methode kommt von der Wearable API. Sein Zweck ist es, Benachrichtigungsgruppen auf dem Wearable zu verwalten - obwohl es auch das Telefon betrifft. Aber die meisten Leute suchen nach den Gmail-Whastapp-ähnlichen Gruppen am Telefon. Die Antwort ist: Sie müssen es selbst tun, indem Sie notificationIDs verwenden, um Ihre Benachrichtigungen zu aktualisieren. Und Sie müssen Ihre Daten zwischen den einzelnen Benachrichtigungen speichern, um die Benachrichtigung "Zusammenfassung" berechnen zu können - was wiederum Ihnen obliegt, mit der gleichen ID zu erstellen und zu senden, um die vorherige "Nicht-Zusammenfassung" -Benachrichtigung zu ersetzen . – John
Für vollständige Logik beachten Sie bitte meine answer.I die Logik mit gemeinsamen Präferenzen verwendet Überprüfung und Rundfunkempfänger, wie ich zu Gruppennachricht jeden Benutzer benötigt in einzelne und in Sichtweite von aktiven Benachrichtigungen.Als nur durch die Ausrichtung auf die API-Ebene 23 können Sie aktive Benachrichtigungen erhalten, es hat mir überhaupt nicht geholfen.Also habe ich beschlossen, etwas leichte Logik zu schreiben.Überprüfen Sie es hier, wenn Sie Lust haben.
- 1. Wie gruppiere ich Textinhalte?
- 2. Wie gruppiere ich eine Gruppe?
- 3. Wie gruppiere ich in Speicherlisten?
- 4. Wie lese ich whatsapp Kontaktliste
- 5. django-rest-swagger: Wie gruppiere ich Endpunkte?
- 6. Wie gruppiere ich meinen Kontostand um Wochen?
- 7. Wie gruppiere ich Ergebnisse mit Eloquent?
- 8. Wie gruppiere ich Windows Form-Optionsfelder?
- 9. Wie gruppiere ich ein Layout in igraph?
- 10. Wie gruppiere ich Zeilen in meinem data.frame?
- 11. Wie gruppiere ich Jobs in Jenkins?
- 12. Wie gruppiere ich einen data.frame nach Datum?
- 13. Wie gruppiere ich Gegenstände (Lebensmittelgruppen) in Swift?
- 14. Wie gruppiere ich Konsumenten in RabbitMQ?
- 15. Wie gruppiere ich nach Geschäftsjahr in xslt?
- 16. Wie gruppiere ich Einschränkungen in einer Ansicht
- 17. Wie WhatsApp Mitteilungsbox
- 18. WhatsApp wie Collapsing Toolbar
- 19. Wie bekomme ich WhatsApp Kontakte von Android?
- 20. Wie gruppiere Duplikate mit MapReduce?
- 21. Wie gruppiere Array nach Dimensionsebene?
- 22. Wie erstelle ich eine WhatsApp wie TextView und EditText?
- 23. Android Galerie wählen wie WhatsApp
- 24. Wie gruppiere ich DataFrame um einen bestimmten Zeitraum?
- 25. Wie gruppiere ich Elemente in einem WPF ListView
- 26. Wie gruppiere ich mehrere Parameter mit CDbCriteria in Yii?
- 27. Wie gruppiere ich nach Anzahl eines Feldes in InfluxDB?
- 28. Wie gruppiere ich die Jmeter Ergebnisse nach Controller Name
- 29. Wie gruppiere ich eine bestimmte Anzahl von Elementen mit jQuery?
- 30. Wie gruppiere ich meine Paketimporte in ein einzelnes benutzerdefiniertes Paket?
Ich habe Code für Builder in 'FcmMessagingService' Klasse geschrieben. innerhalb einer inneren Klasse "onMessageRecieved". Ich kann alle Benachrichtigungen im Detail empfangen, aber es sieht so aus, als ob die Benachrichtigung von verschiedenen Anwendungen empfangen wurde. –