SDKsAndroid
标记会话已读
使用 messageManager.markConversationMessageAsRead() 将 Android 指定会话的消息标记为已读。
用户打开会话并阅读完当前可见消息后,调用 messageManager.markConversationMessageAsRead()。不要在仅预览通知或后台收到消息时提前标记。
OpenIMClient.getInstance().messageManager.markConversationMessageAsRead(
conversationID,
new OnBase<String>() {
@Override
public void onSuccess(String data) {
markConversationReadSubmitted(conversationID);
}
@Override
public void onError(int code, String error) {
recordMarkReadFailure(code, error);
}
}
);成功 callback 表示请求完成,不等于 onConversationChanged 已到达。随后按 conversationID 合并最新 ConversationInfo;需要立即确认时重新查询该会话。
对于单聊,当前用户标记会话已读后,对端可通过 OnAdvanceMsgListener.onRecvC2CReadReceipt 收到已读回执。对每个 C2CReadReceiptInfo 先验证 sessionType == ConversationType.SINGLE_CHAT 和非空 userID,再按 msgIDList 更新对应消息的已读状态。MessageManager 同样只保存一个高级消息 listener,应在应用级消息状态层统一设置。
这个页面有帮助吗?