2015-10-09 29 views

Odpowiedz

26

Kroki, które należy podjąć opiekę z poniższym kodzie.

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. 

Użyj poniższego kodu, aby utworzyć powiadomienie i pogrupować je. Włącz funkcję jednym kliknięciem przycisku.

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()); 
     } 
} 

Na osobne powiadomienia przypisać różne NOTIFICATION_IDs ..

+1

Napisałem kod dla konstruktora w klasie "FcmMessagingService". wewnątrz wewnętrznej klasy 'onMessageRecieved'. Jestem w stanie odbierać wszystkie powiadomienia w szczegółach, ale wygląda na to, że otrzymałem powiadomienie z różnych aplikacji. –

1

Należy utworzyć powiadomienie, aby można było zaktualizować identyfikator powiadomienia, dzwoniąc pod numer NotificationManager.notify(ID, notification).

następujące kroki muszą być tworzone w celu zaktualizowania zgłoszenia:

  1. Aktualizacja lub utwórz NotificationCompat.Builder obiekt
  2. Budowanie obiektu powiadomienia od niej
  3. wydać Powiadamianie z tym samym identyfikatorem używanym wcześniej

przykładem z android Dokumenty producent:

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()); 
... 

Zobacz także Android docs na Układanie Powiadomienia https://developer.android.com/training/wearables/notifications/stacks.html

+4

Dobrze. Metoda API jest myląca: metoda NotificationCompatBuilder.setGroup() pochodzi z interfejsu API Wearable. Jego celem jest zarządzanie grupami powiadomień o tym, że można je nosić - chociaż wpływa również na telefon. Ale większość ludzi szuka w telefonie grup podobnych do Gmaila. Odpowiedź brzmi: musisz zrobić to sam, używając powiadomień, aby zaktualizować swoje powiadomienia. Musisz zapisać dane między poszczególnymi powiadomieniami, aby móc obliczyć powiadomienie "podsumowujące" - co oznacza, że ​​musisz ponownie utworzyć i wysłać z tym samym identyfikatorem, aby zastąpić poprzednie "niezwiązane z podsumowaniem" powiadomienie . – John

0

Dla pełnej logiki należy rozważyć sprawdzenie mój answer.I stosować logikę ze wspólną preferencji i odbiornik transmisji jak i potrzebne do grupy każdą wiadomość do użytkownika i jednym pojedynczym Bądź w kontakcie z aktywnymi powiadomieniami.Tylko kierując się na poziom 23 APi możesz uzyskać aktywne powiadomienia, to mi w ogóle nie pomogło.Także zdecydowałem się napisać trochę logiki.Sprawdź to tutaj, jeśli masz na to ochotę.

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