聊天界面获取聊天记录,调用的是哪个方法获取?是getUserMessages这个方法的话fromIndex要怎么传呢?为什么我获取不到我自己发出去的消息,已贴出发送和获取消息方法

newsoul 1天前 17

send_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String msg = message_tv.getText().toString().trim(); if (msg.isEmpty()) { MyToast.makeText(ImActivity.this, "请输入需要发送的内容", MyToast.LENGTH_SHORT).show(); return; } Conversation conversation = new Conversation(); conversation.type = Conversation.ConversationType.Single; conversation.line = 0; conversation.target = userId; TextMessageContent content = new TextMessageContent(); content.setContent(msg); Message message = new Message(); message.content = content; message.direction = MessageDirection.Send; message.status = MessageStatus.Sent; message.conversation = conversation; Im.chatManager.sendMessage(message, new SendMessageCallback() { @Override public void onSuccess(long messageUid, long timestamp) { runOnUiThread(() -> { message.messageUid = messageUid; message.serverTime = timestamp; messageList.add(message); imMessageAdapter.notifyItemInserted(messageList.size() - 1); scrollBottom(); message_tv.setText(""); }); }

                @Override
                public void onFail(int errorCode) {

                }

                @Override
                public void onPrepare(long messageId, long savedTime) {

                }
            });
        }
    });

public void getMessage() { Conversation conversation = new Conversation(); conversation.target = userId; conversation.line = 0; conversation.type = Conversation.ConversationType.Single; Im.chatManager.getUserMessages(userId, conversation, 0, true, 20, new GetMessageCallback() { @Override public void onSuccess(List messages, boolean hasMore) { runOnUiThread(() -> { messageList.clear(); for (Message message : messages) { MessageContent messageContent = message.content; String showText = ""; if (messageContent instanceof TextMessageContent textMsg) { showText = textMsg.getContent(); } else if (messageContent instanceof TipNotificationContent tipNotificationContent) { showText = tipNotificationContent.tip; } if (!showText.isEmpty()) { messageList.add(message); } } imMessageAdapter.notifyDataSetChanged(); scrollBottom(); }); }

        @Override
        public void onFail(int errorCode) {

        }
    });
}
最新回复 (1)
  • HeavyRain 1天前
    引用 2
    getUserMessages 这个方法是获取某个用户的聊天记录,不要用这个方法,要用getMessages,有个before参数确定是获取更早的消息,还是获取更新的消息,fromIndex只起点,用于分段获取,如果第一次获取可以用0,然后下一次用上一次的终点的消息id(不是messageUid)
返回