跳转至

群组消息阅读回执

群聊消息阅读回执

导引

此功能目前仅在 GROUP 类型的会话中开放。用户可以对自己发送的消息发起阅读回执请求,发起后可以看到有多少人阅读过这条消息。

示例代码

RongIMClient.getInstance().sendReadReceiptRequest(message, new RongIMClient.OperationCallback() {
    @Override
    public void onSuccess() {
    }

    @Override
    public void onError(RongIMClient.ErrorCode errorCode) {
        RLog.e(TAG, "sendReadReceiptRequest failed, errorCode = " + errorCode);
    }
});

示例代码

 RongIMClient.getInstance().sendReadReceiptResponse(type, targetId, messageList, new RongIMClient.OperationCallback() {
     @Override
     public void onSuccess() {
     }

     @Override
     public void onError(RongIMClient.ErrorCode errorCode) {
         RLog.e(TAG, "sendReadReceiptResponse failed, errorCode = " + errorCode);
     }
 });

回调方法说明

参数 类型
onReadReceiptReceived 单聊会话收到消息回执
onMessageReceiptRequest 群组中,某人发起了回执请求,会话中其余人会收到该请求,并回调此方法。
onMessageReceiptResponse 在群组中发起了回执请求的用户,当收到接收方的响应时,会回调此方法。

示例代码

 RongIMClient.setReadReceiptListener(new RongIMClient.ReadReceiptListener() {
     @Override
     public void onReadReceiptReceived(final Message message) {
     }

     @Override
     public void onMessageReceiptRequest(Conversation.ConversationType type, String targetId, String messageUId) {
     }

     @Override
     public void onMessageReceiptResponse(Conversation.ConversationType type, String targetId, String messageUId, HashMap<String, Long> respondUserIdList) {
     }
  });

更改消息未读已读状态

将会话中某个时间之前的消息由未读状态改为已读状态。

参数说明

参数 类型 说明
conversationType Conversation.ConversationType 会话类型
targetId String 目标id
timestamp long 时间戳。
callback OperationCallback 清除是否成功的回调

示例代码

/**
 * 根据时间戳清除指定类型,目标Id 的某一会话消息未读状态。{@link Message#getSentTime()}在时间戳之前的消息将被置成已读。
 */
public void clearMessagesUnreadStatus(final Conversation.ConversationType conversationType, final String targetId, final long timestamp, final OperationCallback callback)

将某个会话中的所有消息设为已读。

参数说明

参数 类型 说明
conversationType Conversation.ConversationType 会话类型
targetId String 目标id
callback ResultCallback 清除是否成功的回调。
/**
 * 清除指定类型,targetId 的某一会话消息未读状态。

 */
public void clearMessagesUnreadStatus(final Conversation.ConversationType conversationType, final String targetId, final ResultCallback<Boolean> callback)

根据 messageId 设置消息的各种状态,比如已读,已收听,已下载等

参数说明

参数 类型 说明
messageId int 消息 Id。
receivedStatus Message.ReceivedStatus 接收到的消息状态
callback ResultCallback 清除是否成功的回调。

示例说明

/**
 * 根据 messageId 设置接收到的消息状态。用于UI标记消息为已读,已下载等状态。
 
 */
public void setMessageReceivedStatus(final int messageId, final Message.ReceivedStatus receivedStatus, final ResultCallback<Boolean> callback)

示例代码:

// 更新内存中消息的已读状态
message.getReceivedStatus().setRead();
// 更新数据库中消息的状态
RongIMClient.getInstance().setMessageReceivedStatus(message.getMessageId(), message.getReceivedStatus(), null);