没有收到下一个用户的通知

时间:2017-06-21 02:55:42

标签: android firebase-realtime-database firebase-cloud-messaging android-notifications

我在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,但是它也只显示一个通知。如果我与2个人聊天,我开始聊天的用户首先会显示通知,但不会显示第二个。 请看看并帮忙。谢谢

1 个答案:

答案 0 :(得分:0)

只需将FLAG_ONE_SHOT更改为FLAG_UPDATE_CURRENT

FLAG_ONE_SHOT: 表示此PendingIntent只能使用一次的标志。

FLAG_UPDATE_CURRENT: 指示如果描述的PendingIntent已经存在的标志,则保留它,但将其额外数据替换为此新Intent中的内容。