2015-10-09 13 views

Antwort

26

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 ..

+1

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. –

1

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:

  1. aktualisieren oder erstellen Sie ein NotificationCompat.Builder Objekt
  2. Erstellen eines Benachrichtigungs Objekt von ihm
  3. 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

+4

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

0

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.

https://stackoverflow.com/a/38079241/6466619

Verwandte Themen