1

我在firebase中創建了一個聊天應用程序,當下面的代碼發出新消息時,用戶將收到通知。未收到下一個用戶的通知

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

我希望在不同的用戶發送消息時收到不同的通知,但對於同一用戶,通知應該更新。我試圖通過使用用戶的Firebase令牌的前3個字母的Unicode來設置唯一的ID,但是它也只顯示一個通知。如果我與兩個人聊天,那麼我已經開始聊天的用戶先顯示通知,但不顯示第二個。 請看看和幫助。謝謝

回答

0

只需更改FLAG_ONE_SHOTFLAG_UPDATE_CURRENT

FLAG_ONE_SHOT: 指示此PendingIntent只能使用一次的標誌。

FLAG_UPDATE_CURRENT: 標誌表明如果所描述的PendingIntent已經存在,那麼保留它,但將它的額外數據替換爲新Intent中的內容。

+0

我用過那個,但沒有顯示任何改變。我正在嘗試,並會在此通知 –