1

Ich habe eine Chat-App in Firebase erstellt und Benutzer werden benachrichtigt, wenn eine neue Nachricht durch die folgenden Codes kommt.Keine Benachrichtigung des nächsten Benutzers

private void sendNotification(String title, String message, String receiver, String receiverUid, String firebaseToken) { 
    Intent intent = new Intent(this, ChatActivity.class); 
    intent.putExtra("name",title); 
    intent.putExtra(Const.ARG_RECEIVER, receiver); 
    intent.putExtra(Const.ARG_RECEIVER_UID, receiverUid); 
    intent.putExtra(Const.ARG_FIREBASE_TOKEN, firebaseToken); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    char[] ch = firebaseToken.substring(0,3).toCharArray(); 
    String a = ""; 
    for (char aCh : ch) { 
     a = a + Integer.toHexString(aCh); 
    } 
    PendingIntent pendingIntent = PendingIntent.getActivity(this, Integer.parseInt(a), intent, 
      PendingIntent.FLAG_ONE_SHOT); 

// Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
      .setSmallIcon(R.drawable.ic_noti) 
      .setContentTitle(title) 
      .setContentText(message) 
      .setAutoCancel(true) 
     //  .setSound(defaultSoundUri) 
      .setContentIntent(pendingIntent); 

    NotificationManager notificationManager = 
      (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

    notificationManager.notify(Integer.parseInt(a), notificationBuilder.build()); 
} 

möchte ich verschiedene Benachrichtigung erhalten, wenn ein anderer Benutzer eine Nachricht sendet, aber für den gleichen Benutzer, die Benachrichtigung aktualisiert werden soll. Ich habe versucht, eine eindeutige ID zu setzen, indem ich den Unicode der ersten drei Buchstaben des Firebase-Tokens des Benutzers verwende, aber dann auch nur eine Benachrichtigung. Wenn ich mit 2 Leuten chatte, zeigt der Benutzer, mit dem ich den Chat begonnen habe, zuerst eine Benachrichtigung, aber nicht die zweite. Bitte schauen Sie und helfen Sie. Danke

Antwort

0

Ändern Sie einfach FLAG_ONE_SHOT zu FLAG_UPDATE_CURRENT.

FLAG_ONE_SHOT: Flag, das angibt, dass dieser PendingIntent nur einmal verwendet werden kann.

FLAG_UPDATE_CURRENT: Flag, das anzeigt, dass, wenn das beschriebene PendingIntent bereits existiert, dann behalten Sie es, aber ersetzen Sie seine zusätzlichen Daten mit dem, was in dieser neuen Absicht ist.

+0

Ich benutzte das. Aber es zeigte keine Änderung. Ich versuche es erneut und werde hier informieren –

Verwandte Themen