将来自每个聊天室的fcm消息分别分组

时间:2020-04-01 20:51:17

标签: firebase-cloud-messaging grouping chat

我已经成功地从fcm组发送/接收

问题是:

我需要收集来自同一组的消息,例如Facebook Messenger: 应用程序名称,然后是聊天室名称,然后是来自同一房间的消息 *

示例::我需要的不是当前的 附加照片中的分隔消息:

Learning ways  <<the name of app
num2           <<room name 
Mon: 6         <<message1
Mon: 7         <<message2
Mon: 8         <<message3

当前通知呼叫:

  @RequiresApi(api = Build.VERSION_CODES.KITKAT_WATCH)
    private void showOreoNotification() {


        OreoNotification oreoNotification = new OreoNotification(this);
        Notification.Builder builder = oreoNotification.getOreoNotification(title, sender_name + body, pendingIntent,
                defaultSound, icon).setLargeIcon(senderImages);
        oreoNotification.getManager().notify(i, builder.build());
        i++;
    }

  private void showOLdNotifications() {


        assert icon != null;
        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                .setSmallIcon(Integer.parseInt(icon))
                .setContentTitle(title)
                .setContentText(sender_name + body)
                .setAutoCancel(true)
                .setSound(defaultSound)
                .setContentIntent(pendingIntent).setLargeIcon(senderImages);
        NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        assert notificationManager != null;
        notificationManager.notify(i, notificationBuilder.build());

        i++;
    }

Text

1 个答案:

答案 0 :(得分:0)

您可以将InboxStyle用于Android 4.1 +

消息格式:

val str1:String = "%s : %s".format(sender, message)

InboxStyle:

Notification notif = new Notification.Builder(mContext)
      .setContentTitle(room_name)
      .setContentText(subject)
      .setSmallIcon(R.drawable.icon)
      .setLargeIcon(aBitmap)
      .setStyle(new Notification.InboxStyle()
          .addLine(str1)
          .addLine(str2)
          .setContentTitle("")
          .setSummaryText("+1 more"))
      .build();

您可以在Android 7及更高版本上使用MessagingStyle

var notification = NotificationCompat.Builder(this, CHANNEL_ID)
        .setStyle(NotificationCompat.MessagingStyle("me")
                .setConversationTitle(room_name)
                .addMessage(message1, timestamp1, null) // Pass in null for you.
                .addMessage(message2, timestamp2, user2)
                .addMessage(message3, timestamp3, user3)
        .build()
相关问题