跳到主要内容

插入消息

功能描述

开发者可通过下面方法在会话页面内插入一条消息。通过此方法插入的消息,会将消息实体对应的内容插入数据源中,并更新 UI。

插入发送消息

向本地会话中插入一条发送方向的消息。此消息必须为客户端会存储的消息类型,参考消息介绍文档的「了解消息注解」。

该方法只是将消息存储在 SDK 本地数据库中,不会实际发送给服务器和对方。

插入消息后, 会自动刷新 UI 界面。

ConversationType conversationType = ConversationType.PRIVATE;
String targetId = "user1";
SentStatus sentStatus = SentStatus.SENT;
TextMessage content = TextMessage.obtain("这里是消息内容");
String sentTime = System.currentTimeMillis();

IMCenter.getInstance().insertOutgoingMessage(conversationType, targetId, sentStatus, content, sentTime, new RongIMClient.ResultCallback<Message>() {

/**
* 成功回调
* @param message 插入的消息
*/
@Override
public void onSuccess(Message message) {

}

/**
* 失败回调
* @param errorCode 错误码
*/
@Override
public void onError(RongIMClient.ErrorCode errorCode) {

}
});

参数类型说明
conversationTypeConversationType会话类型
targetIdString会话 ID。详见消息介绍中关于 Target ID 的说明。
sentStatusMessage.SentStatus发送状态
contentMessageContent消息内容
sentTimelong消息的发送时间。
消息列表页面会按照此时间排序并展示消息。
callbackIRongCallback.ResultCallback<Message>回调接口

插入接收消息

向本地会话中插入一条接收方向的消息,此消息属性必须为存储类型,参考消息属性说明

该方法只是将消息存储在 SDK 本地数据库中,不会发送给服务器。

插入消息后, 会自动刷新 UI 界面。

ConversationType conversationType = ConversationType.PRIVATE;
String targetId = "user1";
String senderUserId = "模拟发送方的 ID";
ReceivedStatus receivedStatus = new ReceivedStatus(0x1);
TextMessage content = TextMessage.obtain("这是一条插入数据");
String sentTime = System.currentTimeMillis();

IMCenter.getInstance().insertIncomingMessage(conversationType, targetId, senderUserId, receivedStatus, content, sentTime, new RongIMClient.ResultCallback<Message>() {
/**
* 成功回调
* @param message 插入的消息
*/
@Override
public void onSuccess(Message message) {

}

/**
* 失败回调
* @param errorCode 错误码
*/
@Override
public void onError(RongIMClient.ErrorCode errorCode) {

}
});
参数类型必填说明
conversationTypeConversationType会话类型.
targetIdStringTarget ID 用于标识会话,称为目标 ID 或会话 ID。注意,因为单聊业务中始终使用对端用户 ID 作为标识本端会话的 Target ID,因此在单聊会话中插入本端接收的消息时,Target ID 始终是单聊对端用户 ID。群聊、超级群的会话 ID 分别为群组 ID、超级群 ID。详见消息介绍中关于 Target ID 的说明。
senderUserIdString发送方 ID。
receivedStatusMessage.ReceivedStatus接收状态。
contentMessageContent消息内容
sentTimelong消息的发送时间。
消息列表页面会按照此时间排序并展示消息。
callbackIRongCallback.ResultCallback<Message>回调接口