Package io.rong.imlib

## Class ChannelClient

- All Implemented Interfaces:

      public abstract class ChannelClient

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ChannelClient()` |

  - ### Enum Constant Summary

    Enum Constants
    Enum Constant | Description
    --- | ---

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `static ChannelClient` | `getInstance()` |
    `abstract void` | `getConversationList(IRongCoreCallback.ResultCallback<List<Conversation>> callback, String channelId)` | 获取当前用户本地会话列表，该方法返回的是以下类型的会话列表：私聊，群组，讨论组，系统会话。 此方法会从本地数据库中，读取会话列表。返回的会话列表排序规则为:按照时间从前往后排列，如果有置顶的会话，则置顶的会话会排列在前面。 如果您需要获取其它类型的会话列表,可以使用getConversationList} 。 需要在连接数据库打开回调 `OnDatabaseOpened` 后调用，IRongCoreCallback.ConnectCallback 。
    `abstract void` | `getConversationList(String channelId, IRongCoreCallback.ResultCallback<List<Conversation>> callback, Array<ConversationType> conversationTypes)` | 根据会话类型，获取当前用户的本地会话列表。
    `abstract void` | `getTopConversationList(IRongCoreCallback.ResultCallback<List<Conversation>> callback, String channelId, Array<ConversationType> conversationTypes)` | 根据会话类型,获取置顶会话列表
    `abstract void` | `getConversationListByPage(IRongCoreCallback.ResultCallback<List<Conversation>> callback, long timeStamp, int count, String channelId, Array<ConversationType> conversationTypes)` | 分页获取会话列表。
    `abstract void` | `getConversationListByPage(IRongCoreCallback.ResultCallback<List<Conversation>> callback, long timeStamp, int count, String channelId, boolean topPriority, Array<ConversationType> conversationTypes)` | 分页获取会话列表。
    `abstract void` | `getBlockedConversationList(IRongCoreCallback.ResultCallback<List<Conversation>> callback, String channelId, Array<ConversationType> conversationTypes)` | 获取免打扰的会话列表。
    `abstract void` | `getUnreadConversationList(IRongCoreCallback.ResultCallback<List<Conversation>> callback, Array<ConversationType> conversationTypes)` | 根据会话类型，获取当前用户未读的本地会话列表。
    `abstract void` | `getConversation(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<Conversation> callback)` | 获取单个会话信息。
    `abstract void` | `getConversations(List<ConversationIdentifier> conversationIdentifiers, IRongCoreCallback.ResultCallback<List<Conversation>> callback)` | 获取会话列表的方法。 <p><strong>功能说明：</strong>根据提供的会话标识符列表获取对应的会话对象列表。 <p>可以通过实现此方法来处理会话的获取，例如从数据库中加载会话数据或从网络请求会话数据。
    `abstract void` | `updateConversationInfo(ConversationType conversationType, String targetId, String channelId, String title, String portrait, IRongCoreCallback.ResultCallback<Boolean> callback)` | 更新会话信息。
    `abstract void` | `removeConversation(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<Boolean> callback)` | 从会话列表中移除某一会话。 此方法不删除会话内的消息。如果此会话中有新的消息，该会话将重新在会话列表中显示，并显示最近的历史消息。
    `abstract void` | `removeConversations(List<ConversationIdentifier> conversationIdentifiers, IRongCoreCallback.ResultCallback<Boolean> callback)` | 批量从会话列表中移除某一会话。 此方法不删除会话内的消息。如果此会话中有新的消息，该会话将重新在会话列表中显示，并显示最近的历史消息。 支持的会话类型：单聊, 群聊, 系统消息
    `abstract void` | `setConversationToTop(ConversationType conversationType, String targetId, String channelId, boolean isTop, IRongCoreCallback.ResultCallback<Boolean> callback)` | 设置会话的置顶状态。 若会话不存在，调用此方法 SDK 自动创建会话并置顶。
    `abstract void` | `setConversationToTop(ConversationType conversationType, String targetId, String channelId, boolean isTop, boolean needCreate, IRongCoreCallback.ResultCallback<Boolean> callback)` | 设置会话的置顶状态。 若会话不存在，调用此方法 SDK 自动创建会话并置顶。
    `abstract void` | `setConversationToTop(ConversationType conversationType, String id, String channelId, boolean isTop, boolean needCreate, boolean needUpdateTime, IRongCoreCallback.ResultCallback<Boolean> callback)` | 设置会话的置顶状态。 若会话不存在，调用此方法 SDK 自动创建会话并置顶。
    `abstract void` | `setConversationsToTop(List<ConversationIdentifier> conversationIdentifiers, boolean isTop, boolean needCreate, IRongCoreCallback.ResultCallback<Boolean> callback)` | 异步批量设置会话的置顶状态
    `abstract void` | `getTotalUnreadCount(String channelId, IRongCoreCallback.ResultCallback<Integer> callback)` | 获取所有会话的总未读消息数。 注意：不包含聊天室，聊天室消息不计数。
    `abstract void` | `getTotalUnreadCount(String channelId, boolean containBlocked, IRongCoreCallback.ResultCallback<Integer> callback)` |
    `abstract void` | `getUnreadCount(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<Integer> callback)` | 获取指定会话的未读消息数。 注意：不包含聊天室，聊天室消息不计数。
    `abstract void` | `getUnreadCount(IRongCoreCallback.ResultCallback<Integer> callback, String channelId, Array<ConversationType> conversationTypes)` | 获取指定会话类型的总未读消息数。 注意：不包含聊天室，聊天室消息不计数。
    `abstract void` | `getUnreadCount(Array<ConversationType> conversationTypes, String channelId, boolean containBlocked, IRongCoreCallback.ResultCallback<Integer> callback)` | 获取指定会话类型的总未读消息数。 注意：不包含聊天室，聊天室消息不计数。
    `abstract void` | `getMessageCount(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<Integer> callback)` | 获取指定会话的消息总数。
    `abstract void` | `getLatestMessages(ConversationType conversationType, String targetId, String channelId, int count, IRongCoreCallback.ResultCallback<List<Message>> callback)` | 获取指定会话的最新消息。
    `abstract void` | `getHistoryMessages(ConversationType conversationType, String targetId, String channelId, String objectName, int oldestMessageId, int count, IRongCoreCallback.ResultCallback<List<Message>> callback)` | 获取会话中符合条件的消息列表。 返回的消息中不包含 oldestMessageId 对应那条消息，如果会话中的消息数量小于参数 count 的值，会将该会话中的所有消息返回。 如：oldestMessageId 为 10，count 为 2，会返回 messageId 为 9 和 8 的 Message 对象列表。 注意：不支持拉取聊天室 CHATROOM 历史消息 该方法仅获取本地数据库中的消息。 注意：since 5.4.
    `abstract void` | `getHistoryMessages(ConversationType conversationType, String targetId, String channelId, String objectName, int baseMessageId, int count, RongCommonDefine.GetMessageDirection direction, IRongCoreCallback.ResultCallback<List<Message>> callback)` | 获取会话中符合条件的消息列表。 如：获取 messageId 为 22 的之前的 10条 图片消息，则相应参数为 getHistoryMessages(conversationType, targetId, "RC:ImgMsg", 22, 10, true, resultCallback)。 注意：不支持拉取聊天室 CHATROOM 历史消息 该方法仅获取本地数据库中的消息。 注意：since 5.4.
    `abstract void` | `getHistoryMessages(ConversationType conversationType, String targetId, String channelId, List<String> objectNames, long timestamp, int count, RongCommonDefine.GetMessageDirection direction, IRongCoreCallback.ResultCallback<List<Message>> callback)` | 获取会话中符合条件的消息列表。 如： 要获取 messageId 为 22 的之前的 10 条图片消息，和文字消息 objectNames 为字符串 List
        objectNames.add("RC:ImgMsg");
        objectNames.add("RC:TxtMsg");
    则相应参数为 getHistoryMessages(conversationType, targetId, objectNames, 22, 10, true, resultCallback)。 该方法仅获取本地数据库中的消息。 注意：since 5.4.
    `abstract void` | `getRemoteHistoryMessages(ConversationType conversationType, String targetId, String channelId, long dateTime, int count, IRongCoreCallback.ResultCallback<List<Message>> callback)` | 从服务器端获取指定时间之前的历史消息。（不支持超级群） 区别于 getHistoryMessages，该接口是从融云服务器中拉取。从服务端拉取消息后，客户端会做排重，返回排重后的数据。通常用于更换新设备后，拉取历史消息。 使用的时候，建议优先通过 getHistoryMessages 从本地数据库拉取历史消息， 当本地数据库没有历史消息后，再通过此接口获取服务器历史消息，时间戳传入本地数据库里最早的消息时间戳。注意： 1.
    `abstract void` | `getRemoteHistoryMessages(ConversationType conversationType, String targetId, String channelId, RemoteHistoryMsgOption remoteHistoryMsgOption, IRongCoreCallback.ResultCallback<List<Message>> callback)` | 获取指定会话远端历史消息。（不支持超级群） 此功能需要在融云开发者后台开启历史消息云存储功能。注意：不支持聊天室！
    `abstract void` | `cleanRemoteHistoryMessages(ConversationType conversationType, String targetId, String channelId, long recordTime, IRongCoreCallback.OperationCallback callback)` | 清除服务器上存储的历史消息。 根据会话类型和目标会话 id 清除某一会话指定时间戳之前的服务端历史消息, 清除成功后只能从服务端获取到该时间戳之后的历史消息。 注意：必须先开通历史消息云存储功能！
    `abstract void` | `cleanHistoryMessages(ConversationType conversationType, String targetId, String channelId, long recordTime, boolean cleanRemote, IRongCoreCallback.OperationCallback callback)` | 删除指定时间戳之前的消息，可选择是否同时删除服务器端消息 此方法可从服务器端清除历史消息，但是必须先开通历史消息云存储功能。 根据会话类型和会话 id 清除某一会话指定时间戳之前的本地数据库消息（服务端历史消息）， 清除成功后只能从本地数据库（服务端）获取到该时间戳之后的历史消息。
    `abstract void` | `getHistoryMessages(ConversationType conversationType, String targetId, int oldestMessageId, int count, String channelId, IRongCoreCallback.ResultCallback<List<Message>> callback)` | 获取会话中，从指定消息之前、指定数量的、指定消息类型的最新消息实体。 注意：不支持聊天室！ 该方法仅获取本地数据库中的消息。 注意：since 5.4.
    `abstract void` | `deleteMessages(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<Boolean> callback)` | 删除某个会话中的所有消息。 此接口删除指定会话中数据库的所有消息，同时会清理数据库空间，减少占用空间。
    `abstract void` | `deleteRemoteMessages(ConversationType conversationType, String targetId, String channelId, Array<Message> messages, IRongCoreCallback.OperationCallback callback)` | 批量删除某个会话中的指定远端消息（同时删除对应的本地消息）。 一次批量操作仅支持删除属于同一个会话的消息，请确保消息列表中的所有消息来自同一会话，一次最多删除 100 条消息。 注意：不支持聊天室！ 5.6.9版本以下不支持超级群会话类型，从 5.6.
    `abstract void` | `clearMessages(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<Boolean> callback)` | 删除某个会话中的所有消息。 注意：不支持聊天室！
    `abstract void` | `clearMessages(List<ClearMessageOption> clearMessageOptions, IRongCoreCallback.ResultCallback<Boolean> callback)` | 异步批量删除指定会话早于（含）发送时间的所有本地数据库消息。 此方法删除数据库中会话早于（含）发送时间的消息记录, 时间戳传 0 清除所有消息 支持的会话类型：单聊, 群聊, 聊天室, 系统消息
    `abstract void` | `clearRemoteMessages(List<ClearMessageOption> clearMessageOptions, boolean isDeleteLocal, IRongCoreCallback.OperationCallback callback)` | 异步批量删除服务端指定会话早于（含）发送时间的所有远端消息（可以删除对应的本地消息） 时间戳传 0 清除所有消息 支持的会话类型：单聊, 群聊, 聊天室, 系统消息
    `abstract void` | `clearMessagesUnreadStatus(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<Boolean> callback)` | 清除某个会话中的未读消息数。 注意：不支持聊天室，不支持超级群
    `abstract void` | `getTextMessageDraft(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<String> callback)` | 获取会话中的草稿信息。
    `abstract void` | `saveTextMessageDraft(ConversationType conversationType, String targetId, String channelId, String content, IRongCoreCallback.ResultCallback<Boolean> callback)` | 保存会话草稿信息。
    `abstract void` | `clearTextMessageDraft(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<Boolean> callback)` | 删除指定会话中的草稿信息。
    `abstract void` | `insertOutgoingMessage(ConversationType type, String targetId, String channelId, SentStatus sentStatus, MessageContent content, long sentTime, IRongCoreCallback.ResultCallback<Message> resultCallback)` | 向本地会话中插入一条消息，方向为发送。 这条消息只是插入本地会话，不会实际发送给服务器和对方。 插入消息需为入库消息，即 ISPERSISTED，否者会回调 RC_INVALID_PARAMETER_MSG_TAG
    `abstract void` | `insertOutgoingMessage(ConversationType type, String targetId, String channelId, boolean canIncludeExpansion, SentStatus sentStatus, MessageContent content, long sentTime, IRongCoreCallback.ResultCallback<Message> resultCallback)` |
    `abstract void` | `insertIncomingMessage(ConversationType type, String targetId, String channelId, String senderUserId, ReceivedStatus receivedStatus, MessageContent content, long sentTime, IRongCoreCallback.ResultCallback<Message> resultCallback)` | 向本地会话中插入一条消息，方向为接收。 这条消息只是插入本地会话，不会实际发送给服务器和对方。插入消息需为入库消息，即 ISPERSISTED，否者会回调 RC_INVALID_PARAMETER_MSG_TAG。
    `abstract void` | `insertMessage(Message message, IRongCoreCallback.ResultCallback<Message> resultCallback)` |
    `abstract void` | `sendMessage(ConversationType type, String targetId, String channelId, MessageContent content, String pushContent, String pushData, IRongCoreCallback.ISendMessageCallback callback)` | 根据会话类型，发送消息。 通过 io.rong.imlib.IRongCoreCallback.
    `abstract void` | `sendDirectionalMessage(ConversationType type, String targetId, String channelId, MessageContent content, Array<String> userIds, String pushContent, String pushData, SendMessageOption option, IRongCoreCallback.ISendMessageCallback callback)` | 发送定向消息。 此方法用于在群组、超级群中发送消息给其中的部分用户，其它用户不会收到这条消息。 通过 io.rong.imlib.IRongCoreCallback.
    `abstract void` | `sendDirectionalMessage(Message message, Array<String> userIds, String pushContent, String pushData, SendMessageOption option, IRongCoreCallback.ISendMessageCallback callback)` | 发送定向消息。 此方法用于在群组、超级群中发送消息给其中的部分用户，其它用户不会收到这条消息。 通过 io.rong.imlib.IRongCoreCallback.
    `abstract void` | `sendDirectionalMediaMessage(Message message, Array<String> userIds, String pushContent, String pushData, IRongCoreCallback.ISendMediaMessageCallback callback)` | 发送定向多媒体消息。 向会话中特定的某些用户发送消息，会话中其他用户不会收到消息。 发送前构造 Message 消息实体，消息实体中的 content 必须为多媒体消息。 例如：ImageMessage 、 或其他继承自 MediaMessageContent 的消息。 从 5.6.
    `abstract void` | `sendImageMessage(ConversationType type, String targetId, String channelId, MessageContent content, String pushContent, String pushData, IRongCoreCallback.SendImageMessageCallback callback)` | 发送图片消息。 如果您使用IMLib，可以使用此方法发送图片消息； 如果您使用 IMKit，请使用 RongIM 中的同名方法发送图片消息，否则不会自动更新 UI。
    `abstract void` | `downloadMedia(ConversationType conversationType, String targetId, String channelId, IRongCoreEnum.MediaType mediaType, String imageUrl, IRongCoreCallback.DownloadMediaCallback callback)` | 下载多媒体文件。 如果本地缓存中包含此文件，则从本地缓存中直接获取，否则将从服务器端下载。
    `abstract void` | `getConversationNotificationStatus(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<ConversationNotificationStatus> callback)` | 获取会话消息提醒状态。 注意：不支持聊天室！
    `abstract void` | `setConversationNotificationStatus(ConversationType conversationType, String targetId, String channelId, ConversationNotificationStatus notificationStatus, IRongCoreCallback.ResultCallback<ConversationNotificationStatus> callback)` | 设置会话消息提醒状态。 注意：不支持聊天室！
    `abstract void` | `clearConversations(IRongCoreCallback.ResultCallback<Boolean> callback, String channelId, Array<ConversationType> conversationTypes)` | 清空指定会话类型列表中的所有会话及会话信息。（不支持超级群）
    `abstract Collection<TypingStatus>` | `getTypingUserListFromConversation(ConversationType conversationType, String targetId, String channelId)` | 获取会话正在输入的用户列表
    `abstract void` | `sendTypingStatus(ConversationType conversationType, String targetId, String channelId, String typingContentType)` | 向会话中发送正在输入的状态，目前只支持单聊。
    `abstract void` | `sendReadReceiptMessage(ConversationType conversationType, String targetId, String channelId, long timestamp)` | 发送某个会话中的消息阅读回执 使用 IMLib 可以注册监听 setReadReceiptListener；使用 IMkit 直接设置 rc_config.
    `abstract void` | `sendReadReceiptMessage(ConversationType conversationType, String targetId, String channelId, long timestamp, IRongCoreCallback.ISendMessageCallback callback)` | 发送某个会话中的消息阅读回执。 使用 IMLib 可以注册监听 setReadReceiptListener；使用 IMkit 直接设置 rc_config.
    `abstract void` | `getUnreadMentionedMessages(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<List<Message>> callback)` | 获取会话中未读的 @ 消息。
    `abstract void` | `clearMessagesUnreadStatus(ConversationType conversationType, String targetId, String channelId, long timestamp, IRongCoreCallback.OperationCallback callback)` | 清除某个会话中的未读消息数。 注意：不支持聊天室，不支持超级群
    `abstract void` | `sendReadReceiptResponse(ConversationType type, String targetId, String channelId, List<Message> messageList, IRongCoreCallback.OperationCallback callback)` | 发送已读回执（只支持群组和讨论组）。
    `abstract void` | `syncConversationReadStatus(ConversationType type, String targetId, String channelId, long timestamp, IRongCoreCallback.OperationCallback callback)` | 同步会话阅读状态。
    `abstract void` | `searchConversations(String keyword, Array<ConversationType> conversationTypes, String channelId, Array<String> objectNames, IRongCoreCallback.ResultCallback<List<SearchConversationResult>> resultCallback)` | 根据关键字搜索会话。 此方法可快速返回匹配的会话列表，并且会话中包含已匹配的消息数量。通过 {SearchConversationResult#getMatchCount()} 得到。 注意：如果需要自定义消息也能被搜索到，需要在自定义消息中实现 getSearchableWord 方法。
    `abstract void` | `searchMessages(ConversationType conversationType, String targetId, String channelId, String keyword, int count, long beginTime, IRongCoreCallback.ResultCallback<List<Message>> resultCallback)` | 根据关键字搜索指定会话中的消息。 注意：如果需要自定义消息也能被搜索到，需要在自定义消息中实现 getSearchableWord 方法。超级群会话类型只支持搜索已存储到本地的消息。
    `abstract void` | `searchMessages(ConversationType conversationType, String targetId, String channelId, String keyword, long startTime, long endTime, int offset, int limit, IRongCoreCallback.ResultCallback<List<Message>> resultCallback)` | 根据关键字，指定时间段搜索指定会话中的消息。 注意：如果需要自定义消息也能被搜索到，需要在自定义消息中实现 getSearchableWord 方法。超级群会话类型只支持搜索已存储到本地的消息。
    `abstract void` | `searchMessages(ConversationIdentifier conversationIdentifier, String keyword, Array<String> objectNameList, int limit, long startTime, IRongCoreCallback.ResultCallback<List<Message>> resultCallback)` | 根据关键字搜索指定会话中，指定消息类型的本地历史消息 此方法允许应用根据关键词、对象名列表、时间范围等条件在一个特定对话中搜索消息。搜索结果将通过回调方式返回。
    `abstract void` | `searchMessagesByUser(ConversationType conversationType, String targetId, String channelId, String userId, int count, long beginTime, IRongCoreCallback.ResultCallback<List<Message>> resultCallback)` | 根据用户 id 搜索指定会话中的消息。 注意：如果需要自定义消息也能被搜索到，需要在自定义消息中实现 getSearchableWord 方法。超级群会话类型只支持搜索已存储到本地的消息。
    `abstract void` | `searchMessagesForChannels(ConversationType conversationType, String targetId, Array<String> channelIds, String keyword, long startTime, int limit, IRongCoreCallback.ResultCallback<List<Message>> resultCallback)` | 根据用户id、会话业务标识、关键字等搜索指定会话中的消息。 注意：如果需要自定义消息也能被搜索到，需要在自定义消息中实现 getSearchableWord 方法。
    `abstract void` | `searchMessagesByUserForChannels(ConversationType conversationType, String targetId, Array<String> channelIds, String userId, long startTime, int limit, IRongCoreCallback.ResultCallback<List<Message>> resultCallback)` | 根据会话id、会话业务标识、用户ID等搜索指定会话中的消息。 注意：如果需要自定义消息也能被搜索到，需要在自定义消息中实现 getSearchableWord 方法。
    `abstract void` | `searchMessagesByUserForAllChannel(ConversationType conversationType, String targetId, String userId, long startTime, int limit, IRongCoreCallback.ResultCallback<List<Message>> resultCallback)` | 根据会话id、用户id等搜索指定会话中的消息。(包含所有的 ChannelId) 注意：如果需要自定义消息也能被搜索到，需要在自定义消息中实现 getSearchableWord 方法。
    `abstract void` | `getHistoryMessages(ConversationType conversationType, String targetId, String channelId, long sentTime, int before, int after, IRongCoreCallback.ResultCallback<List<Message>> resultCallback)` | 在会话中搜索指定消息的前 `before` 数量和 `after` 数量的消息。 返回的消息列表中会包含指定的消息。消息列表时间顺序从新到旧。 该方法仅获取本地数据库中的消息。 注意：since 5.4.
    `abstract void` | `getTheFirstUnreadMessage(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<Message> callback)` | 获取第一条未读消息。
    `abstract void` | `setSyncConversationReadStatusListener(IConversationChannelListener.ConversationChannelSyncConversationReadStatusListener listener)` | 设置多端同步会话阅读状态监听。
    `abstract void` | `setConversationChannelTypingStatusListener(IConversationChannelListener.ConversationChannelTypingStatusListener listener)` | 设置输入状态监听器。 当输入状态发生变化时，回调 onTypingStatusChanged (Conversation.
    `abstract void` | `getMessages(ConversationType conversationType, String targetId, String channelId, HistoryMessageOption historyMessageOption, IRongCoreCallback.IGetMessageCallback callback)` | 获取指定会话历史消息。 此方法先从本地获取历史消息，本地有缺失的情况下会从服务端同步缺失的部分；从服务端同步失败的时候会返回非 0 的 errorCode，同时把本地能取到的消息回调上去。 必须开通历史消息云存储功能。
    `abstract void` | `getMessages(ConversationType conversationType, String targetId, String channelId, HistoryMessageOption historyMessageOption, IRongCoreCallback.IGetMessageCallbackEx getMessageCallback)` | 获取指定会话历史消息。 此方法先从本地获取历史消息，本地有缺失的情况下会从服务端同步缺失的部分；从服务端同步失败的时候会返回非 0 的 errorCode，同时把本地能取到的消息回调上去。 必须开通历史消息云存储功能。
    `abstract void` | `getConversationTopStatus(String targetId, ConversationType conversationType, String channelId, IRongCoreCallback.ResultCallback<Boolean> callback)` | 获取会话的置顶状态 同时设置 setConversationStatusListener 监听器，在onConversationTagChanged回调中更新会话置顶状态，保证会话置顶的准确性 此方法会从本地数据库中，读取该会话是否置顶。
    `abstract void` | `getUnreadCount(String targetId, ConversationType conversationType, Array<String> objectNames, String channelId, IRongCoreCallback.ResultCallback<Integer> callback)` | 获取指定会话内指定消息类型的未读消息数（聊天室会话除外）
    `abstract void` | `getPrivateMessageDeliverTime(String uid, String channelId, IRongCoreCallback.ResultCallback<Long> callback)` | 获取单聊某条消息的送达时间
    `abstract void` | `getGroupMessageDeliverList(String uid, String targetId, String channelId, IRongCoreListener.IGetGroupMessageDeliverListCallback callback)` | 获取群组消息送达列表（只支持群组） 只查询本地数据库中 UID 存在且发送方向为 SEND 对方已经接收的消息。
    `abstract void` | `getMessageByUid(String uid, IRongCoreCallback.ResultCallback<Message> callback)` | 通过全局唯一 id 获取消息实体。
    `abstract void` | `getUltraGroupUnreadMentionedCount(String targetId, IRongCoreCallback.ResultCallback<Integer> callback)` | 获取超级群会话中被 @ 的消息数 注意：此方法只支持超级群的会话类型！
    `abstract void` | `sendUltraGroupTypingStatus(String targetId, String channelId, IRongCoreEnum.UltraGroupTypingStatus typingStatus, IRongCoreCallback.OperationCallback callback)` | 发送超级群输入状态
    `abstract void` | `deleteUltraGroupMessagesForAllChannel(String targetId, long timestamp, IRongCoreCallback.ResultCallback<Boolean> callback)` | 删除本地所有 channel 特定时间之前的消息
    `abstract void` | `deleteUltraGroupMessages(String targetId, String channelId, long timestamp, IRongCoreCallback.ResultCallback<Boolean> callback)` | 删除本地特定 channel 特点时间之前的消息
    `abstract void` | `deleteRemoteUltraGroupMessages(String targetId, String channelId, long timestamp, IRongCoreCallback.OperationCallback callback)` | 删除服务端特定 channel 特定时间之前的消息
    `abstract void` | `modifyUltraGroupMessage(String msgUid, MessageContent content, IRongCoreCallback.OperationCallback callback)` | 修改消息 注意：此方法只能修改相同频道的同类型消息，仅能修改自己发送的消息
    `abstract void` | `syncUltraGroupReadStatus(String targetId, String channelId, long timestamp, IRongCoreCallback.OperationCallback callback)` | 上报超级群的已读时间
    `abstract void` | `setUltraGroupReadTimeListener(IRongCoreListener.UltraGroupReadTimeListener listener)` | 设置超级群已读时间回调监听器 此方法只支持超级群的会话类型
    `abstract void` | `setUltraGroupTypingStatusListener(IRongCoreListener.UltraGroupTypingStatusListener listener)` | 设置超级群输入状态监听器
    `abstract void` | `setUltraGroupMessageChangeListener(IRongCoreListener.UltraGroupMessageChangeListener listener)` | 设置超级群消息变更监听器
    `abstract void` | `updateUltraGroupMessageExpansion(Map<String, String> expansion, String messageUId, IRongCoreCallback.OperationCallback callback)` | 更新超级群消息扩展信息 每条消息携带扩展信息键值对最大值 300个，单次设置扩展信息键值对最大值 20个
    `abstract void` | `removeUltraGroupMessageExpansion(String messageUId, List<String> keyArray, IRongCoreCallback.OperationCallback callback)` | 删除超级群消息扩展信息中特定的键值对
    `abstract void` | `recallUltraGroupMessage(Message message, IRongCoreCallback.ResultCallback<RecallNotificationMessage> callback)` | 撤回超级群消息
    `abstract void` | `recallUltraGroupMessage(Message message, boolean isDelete, IRongCoreCallback.ResultCallback<RecallNotificationMessage> callback)` | 撤回超级群消息
    `abstract void` | `getUltraGroupConversationListForAllChannel(IRongCoreCallback.ResultCallback<List<Conversation>> callback)` | 获取超级群当前用户本地会话列表，该方法返回的是以下类型的会话列表：私聊，群组，讨论组，系统会话。 此方法会从本地数据库中，读取会话列表。返回的会话列表排序规则为:按照时间从前往后排列，如果有置顶的会话，则置顶的会话会排列在前面。 如果您需要获取其它类型的会话列表,可以使用getConversationList} 。 需要在连接数据库打开回调 `OnDatabaseOpened` 后调用，IRongCoreCallback.ConnectCallback 。
    `abstract void` | `getBatchRemoteUltraGroupMessages(List<Message> msgList, IRongCoreCallback.IGetBatchRemoteUltraGroupMessageCallback callback)` | 从服务获取批量消息
    `abstract void` | `getConversationListForAllChannel(ConversationType conversationType, String targetId, IRongCoreCallback.ResultCallback<List<Conversation>> callback)` | 获取特定会话下所有频道的会话列表（只支持单群聊，超级群，不支持聊天室）
    `abstract void` | `setNotificationQuietHoursLevel(String startTime, int spanMinutes, IRongCoreEnum.PushNotificationQuietHoursLevel level, IRongCoreCallback.OperationCallback callback)` | 设置消息通知免打扰时间。
    `abstract void` | `removeNotificationQuietHours(IRongCoreCallback.OperationCallback callback)` | 移除消息通知免打扰时间。
    `abstract void` | `getNotificationQuietHoursLevel(IRongCoreCallback.GetNotificationQuietHoursCallbackEx callback)` | 获取消息通知免打扰时间。
    `abstract void` | `setConversationChannelNotificationLevel(ConversationType conversationType, String targetId, String channelId, IRongCoreEnum.PushNotificationLevel level, IRongCoreCallback.OperationCallback callback)` | 设置会话消息提醒状态。取消设置，请调用此方法，level 传入 PUSH_NOTIFICATION_LEVEL_ALL_MESSAGE注意：不支持聊天室！注意：超级群通过该接口对具体频道进行免打扰设置
    `abstract void` | `setConversationsNotificationLevel(List<ConversationIdentifier> conversationIdentifiers, IRongCoreEnum.PushNotificationLevel level, IRongCoreCallback.OperationCallback callback)` | 异步批量设置会话的消息提醒状态 取消设置，请调用此方法，level 传入 * io.rong.imlib.IRongCoreEnum.
    `abstract void` | `getConversationChannelNotificationLevel(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<IRongCoreEnum.PushNotificationLevel> callback)` | 获取会话消息提醒状态。 注意：不支持聊天室！
    `abstract void` | `setConversationNotificationLevel(ConversationType conversationType, String targetId, IRongCoreEnum.PushNotificationLevel level, IRongCoreCallback.OperationCallback callback)` | 指定会话免打扰设置 注意：超级群调用该接口，相当于设置了 channelId 为 空 的频道的免打扰，不会屏蔽整个超级群会话下所有频道的免打扰
    `abstract void` | `getConversationNotificationLevel(ConversationType conversationType, String targetId, IRongCoreCallback.ResultCallback<IRongCoreEnum.PushNotificationLevel> callback)` | 获取指定会话免打扰状态。 注意：不支持聊天室！
    `abstract void` | `setConversationTypeNotificationLevel(ConversationType conversationType, IRongCoreEnum.PushNotificationLevel level, IRongCoreCallback.OperationCallback callback)` | 指定会话类型免打扰设置 按照特定会话类型进行免打扰设置 明确支持：单聊，群聊，超级群，系统会话
    `abstract void` | `getConversationTypeNotificationLevel(ConversationType conversationType, IRongCoreCallback.ResultCallback<IRongCoreEnum.PushNotificationLevel> callback)` | 获取指定会话类型免打扰状态。 注意：不支持聊天室！
    `abstract void` | `getUltraGroupConversationDefaultNotificationLevel(String targetId, IRongCoreCallback.ResultCallback<IRongCoreEnum.PushNotificationLevel> callback)` | 查询指定超级群默认通知配置
    `abstract void` | `getUltraGroupConversationChannelDefaultNotificationLevel(String targetId, String channelId, IRongCoreCallback.ResultCallback<IRongCoreEnum.PushNotificationLevel> callback)` | 查询指定超级群指定频道默认通知配置
    `abstract void` | `setUltraGroupConversationDefaultNotificationLevel(String targetId, IRongCoreEnum.PushNotificationLevel level, IRongCoreCallback.OperationCallback callback)` |
    `abstract void` | `setUltraGroupConversationChannelDefaultNotificationLevel(String targetId, String channelId, IRongCoreEnum.PushNotificationLevel level, IRongCoreCallback.OperationCallback callback)` |
    `abstract void` | `getUltraGroupUnreadCount(String targetId, IRongCoreCallback.ResultCallback<Integer> callback)` | 获取指定超级群下所有频道的未读消息总数
    `abstract void` | `getUltraGroupAllUnreadCount(IRongCoreCallback.ResultCallback<Integer> callback)` | 获取超级群会话类型的所有未读消息数
    `abstract void` | `getUltraGroupAllUnreadMentionedCount(IRongCoreCallback.ResultCallback<Integer> callback)` | 获取超级群会话类型的@消息未读数接口
    `abstract void` | `setUltraGroupConversationListener(IRongCoreListener.UltraGroupConversationListener listener)` | 设置超级群会话监听器
    `abstract void` | `getConversationListWithAllChannel(IRongCoreCallback.ResultCallback<List<Conversation>> callback, Array<ConversationType> conversationTypes)` |
    `abstract void` | `getConversationListWithAllChannelByPage(IRongCoreCallback.ResultCallback<List<Conversation>> callback, Array<ConversationType> conversationTypes, long timeStamp, int count)` |
    `abstract void` | `searchMessageForAllChannel(String targetId, ConversationType conversationType, String keyword, int count, long timestamp, IRongCoreCallback.ResultCallback<List<Message>> callback)` |
    `abstract void` | `searchMessageByTimestampForAllChannel(String targetId, ConversationType conversationType, String keyword, long startTime, long endTime, int offset, int limit, IRongCoreCallback.ResultCallback<List<Message>> callback)` |
    `abstract void` | `searchConversationForAllChannel(String keyword, Array<ConversationType> conversationTypes, Array<String> objName, IRongCoreCallback.ResultCallback<List<SearchConversationResult>> callback)` |
    `abstract void` | `getUltraGroupChannelList(String targetId, IRongCoreEnum.UltraGroupChannelType channelType, IRongCoreCallback.ResultCallback<List<Conversation>> callback)` | 获取超级群频道列表
    `abstract void` | `setUltraGroupChannelListener(IRongCoreListener.UltraGroupChannelListener listener)` | 超级群频道事件监听
    `abstract void` | `getUnreadCount(List<ConversationType> conversationTypes, List<IRongCoreEnum.PushNotificationLevel> levels, IRongCoreCallback.ResultCallback<Integer> callback)` | 获取会话未读消息数
    `abstract void` | `getUnreadMentionedCount(List<ConversationType> conversationTypes, List<IRongCoreEnum.PushNotificationLevel> levels, IRongCoreCallback.ResultCallback<Integer> callback)` | 获取获取会话未读 `@` 消息数
    `abstract void` | `getUltraGroupUnreadCount(String targetId, List<IRongCoreEnum.PushNotificationLevel> levels, IRongCoreCallback.ResultCallback<Integer> callback)` | 获取指定超级群会话的未读消息数（包括所有频道)
    `abstract void` | `getUltraGroupUnreadMentionedCount(String targetId, List<IRongCoreEnum.PushNotificationLevel> levels, IRongCoreCallback.ResultCallback<Integer> callback)` | 获取指定超级群会话的未读`@` 消息数（包括所有频道）
    `abstract void` | `getUnreadMentionedMessages(ConversationType conversationType, String targetId, String channelId, int count, boolean desc, IRongCoreCallback.ResultCallback<List<Message>> callback)` |
    `abstract void` | `getUltraGroupUnreadMentionedDigests(String targetId, String channelId, long sendTime, int count, IRongCoreCallback.ResultCallback<List<MessageDigestInfo>> callback)` | 获取超级群会话类型未读的@消息摘要列表接口
    `abstract void` | `getBatchLocalMessages(ConversationType conversationType, String targetId, String channelId, List<String> messageUIDs, IRongCoreCallback.IGetMessagesByUIDsCallback callback)` |
    `abstract void` | `setUserGroupStatusListener(IRongCoreListener.UserGroupStatusListener userGroupStatusListener)` | 设置用户组状态监听器
    `abstract void` | `getUltraGroupConversationUnreadInfoList(Array<String> targetIds, IRongCoreCallback.ResultCallback<List<ConversationUnreadInfo>> callback)` | 根据超级群的TargetId数组，获取每个超级群下所有频道的会话的未读相关信息
    `abstract void` | `getUltraGroupMessageCountByTimeRange(String targetId, Array<String> channelIds, long startTime, long endTime, IRongCoreCallback.ResultCallback<Integer> callback)` | 获取某个超级群指定 channel 列表，某段时间范围内的消息数量，如果 channel_id_list 为空，则返回全部 channel id 的消息数量
    `abstract void` | `getMessageCountByTimeRange(String targetId, ConversationType conversationType, long startTime, long endTime, IRongCoreCallback.ResultCallback<Integer> callback)` | 获取某个会话某段时间范围内的消息数量，如果为超级群则需获取所有 channel id 的消息数量
    `abstract void` | `sendReadReceiptMessageV4(ConversationType conversationType, String targetId, String channelId, String startMessageUID, String endMessageUID, IRongCoreCallback.OperationCallback callback)` | 发送已读回执v4(支持单群聊)
    `abstract void` | `getMessageReadReceiptV4(String targetId, String channelId, String messageUID, IRongCoreCallback.ResultCallbackEx<Integer, Integer, List<GroupMessageReader>> callback)` | 获取消息已读用户列表（支持群组）

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ChannelClient

          ChannelClient()

  - ### Method Detail

    - #### getInstance

           static ChannelClient getInstance()

      Since:

        5.0.0

    - #### getConversationList

           abstract void getConversationList(IRongCoreCallback.ResultCallback<List<Conversation>> callback, String channelId)

      获取当前用户本地会话列表，该方法返回的是以下类型的会话列表：私聊，群组，讨论组，系统会话。

      此方法会从本地数据库中，读取会话列表。返回的会话列表排序规则为:按照时间从前往后排列，如果有置顶的会话，则置顶的会话会排列在前面。

      如果您需要获取其它类型的会话列表,可以使用getConversationList} 。

      需要在连接数据库打开回调 `OnDatabaseOpened` 后调用，IRongCoreCallback.ConnectCallback 。

      Parameters:
        `callback` - 获取会话列表的回调。
        `channelId` - 消息所属会话的业务标识。
      Since:

        5.1.1

    - #### getConversationList

           abstract void getConversationList(String channelId, IRongCoreCallback.ResultCallback<List<Conversation>> callback, Array<ConversationType> conversationTypes)

      根据会话类型，获取当前用户的本地会话列表。

      Parameters:
        `channelId` - 消息所属会话的业务标识。
        `callback` - 获取会话列表的回调。
        `conversationTypes` - 要获取的会话类型。
      Since:

        5.1.1

    - #### getTopConversationList

           abstract void getTopConversationList(IRongCoreCallback.ResultCallback<List<Conversation>> callback, String channelId, Array<ConversationType> conversationTypes)

      根据会话类型,获取置顶会话列表

      Parameters:
        `channelId` - 消息所属会话的业务标识。
      Since:

        5.1.1

    - #### getConversationListByPage

           abstract void getConversationListByPage(IRongCoreCallback.ResultCallback<List<Conversation>> callback, long timeStamp, int count, String channelId, Array<ConversationType> conversationTypes)

      分页获取会话列表。

      Parameters:
        `callback` - 获取会话列表的回调。
        `timeStamp` - 时间戳（毫秒），通过获取从此时间戳往前的会话，传入 0 表示从最新会话开始获取。参考 getSentTime 。
        `count` - 取回的会话数量。当实际取回的会话数量小于 count 值时，表明已取完数据。 建议此数值不要超过 10 个，当一次性获取的会话数过大时， 会导致跨进程通信崩溃，引发获取会话列表失败及通信连接被中断。
        `channelId` - 消息所属会话的业务标识。
        `conversationTypes` - 要获取的会话类型。
      Since:

        5.1.1

    - #### getConversationListByPage

           abstract void getConversationListByPage(IRongCoreCallback.ResultCallback<List<Conversation>> callback, long timeStamp, int count, String channelId, boolean topPriority, Array<ConversationType> conversationTypes)

      分页获取会话列表。

      Parameters:
        `callback` - 获取会话列表的回调。
        `timeStamp` - 时间戳（毫秒），通过获取从此时间戳往前的会话，传入 0 表示从最新会话开始获取。参考 getSentTime 。
        `count` - 取回的会话数量。当实际取回的会话数量小于 count 值时，表明已取完数据。 建议此数值不要超过 10 个，当一次性获取的会话数过大时， 会导致跨进程通信崩溃，引发获取会话列表失败及通信连接被中断。
        `channelId` - 消息所属会话的业务标识。
        `topPriority` - 是否优先显示置顶消息（查询结果的排序方式，是否置顶优先，传 true 表示置顶会话优先返回，传 false 结果只以会话时间排序）
        `conversationTypes` - 要获取的会话类型。
      Since:

        5.6.9

    - #### getBlockedConversationList

           abstract void getBlockedConversationList(IRongCoreCallback.ResultCallback<List<Conversation>> callback, String channelId, Array<ConversationType> conversationTypes)

      获取免打扰的会话列表。

      Parameters:
        `callback` - 获取免打扰会话的回调。
        `channelId` - 消息所属会话的业务标识。
        `conversationTypes` - 会话类型，io.rong.imlib.model.Conversation.
      Since:

        5.1.1

    - #### getUnreadConversationList

           abstract void getUnreadConversationList(IRongCoreCallback.ResultCallback<List<Conversation>> callback, Array<ConversationType> conversationTypes)

      根据会话类型，获取当前用户未读的本地会话列表。

      Parameters:
        `callback` - 获取会话列表的回调。
        `conversationTypes` - 要获取的会话类型。该接口仅支持 单聊、群聊、系统三种会话类型，不支持聊天室、超级群。
      Since:

        5.3.2

    - #### getConversation

           abstract void getConversation(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<Conversation> callback)

      获取单个会话信息。

      Parameters:
        `conversationType` - 会话类型。参考 io.rong.imlib.model.Conversation.
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id 或聊天室 id。
        `channelId` - 消息所属会话的业务标识。
        `callback` - 获取会话信息的回调。
      Since:

        5.1.1

    - #### getConversations

           abstract void getConversations(List<ConversationIdentifier> conversationIdentifiers, IRongCoreCallback.ResultCallback<List<Conversation>> callback)

      获取会话列表的方法。 <p><strong>功能说明：</strong>根据提供的会话标识符列表获取对应的会话对象列表。 <p>可以通过实现此方法来处理会话的获取，例如从数据库中加载会话数据或从网络请求会话数据。

      Parameters:
        `conversationIdentifiers` - 会话标识符的列表，用于指定要获取的会话。 参考 。
        `callback` - 获取会话结果的回调，包含会话对象列表或错误信息。参考 。
      Since:

        5.8.2

    - #### updateConversationInfo

           abstract void updateConversationInfo(ConversationType conversationType, String targetId, String channelId, String title, String portrait, IRongCoreCallback.ResultCallback<Boolean> callback)

      更新会话信息。

      Parameters:
        `conversationType` - 会话类型 io.rong.imlib.model.Conversation.
        `targetId` - 会话 id
        `channelId` - 消息所属会话的业务标识。
        `title` - 会话标题
        `portrait` - 会话头像
        `callback` - 回调
      Since:

        5.1.1

    - #### removeConversation

           abstract void removeConversation(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<Boolean> callback)

      从会话列表中移除某一会话。

      此方法不删除会话内的消息。如果此会话中有新的消息，该会话将重新在会话列表中显示，并显示最近的历史消息。

      Parameters:
        `conversationType` - 会话类型 io.rong.imlib.model.Conversation.
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id 或聊天室 id。
        `channelId` - 消息所属会话的业务标识。
        `callback` - 移除会话是否成功的回调，回调类型是 Boolean，`ResultCallback<Boolean>` 。
      Since:

        5.1.1

    - #### removeConversations

           abstract void removeConversations(List<ConversationIdentifier> conversationIdentifiers, IRongCoreCallback.ResultCallback<Boolean> callback)

      批量从会话列表中移除某一会话。

      此方法不删除会话内的消息。如果此会话中有新的消息，该会话将重新在会话列表中显示，并显示最近的历史消息。

      支持的会话类型：单聊, 群聊, 系统消息

      Parameters:
        `conversationIdentifiers` - 会话标识列表，最大数量为 20
        `callback` - 移除会话是否成功的回调，回调类型是 Boolean，`ResultCallback<Boolean>` 。
      Since:

        5.6.7

    - #### setConversationToTop

           abstract void setConversationToTop(ConversationType conversationType, String targetId, String channelId, boolean isTop, IRongCoreCallback.ResultCallback<Boolean> callback)

      设置会话的置顶状态。

      若会话不存在，调用此方法 SDK 自动创建会话并置顶。

      Parameters:
        `conversationType` - 会话类型 io.rong.imlib.model.Conversation.
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id 或聊天室 id。
        `channelId` - 消息所属会话的业务标识。
        `isTop` - 是否置顶。
        `callback` - 设置置顶是否成功的回调。
      Since:

        5.6.8

    - #### setConversationToTop

          @Deprecated() abstract void setConversationToTop(ConversationType conversationType, String targetId, String channelId, boolean isTop, boolean needCreate, IRongCoreCallback.ResultCallback<Boolean> callback)

      设置会话的置顶状态。

      若会话不存在，调用此方法 SDK 自动创建会话并置顶。

      Parameters:
        `conversationType` - 会话类型 io.rong.imlib.model.Conversation.
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id 或聊天室 id。
        `channelId` - 消息所属会话的业务标识。
        `isTop` - 是否置顶。
        `needCreate` - 会话不存在时，是否创建会话。
        `callback` - 设置置顶是否成功的回调。
      Since:

        5.1.1

    - #### setConversationToTop

           abstract void setConversationToTop(ConversationType conversationType, String id, String channelId, boolean isTop, boolean needCreate, boolean needUpdateTime, IRongCoreCallback.ResultCallback<Boolean> callback)

      设置会话的置顶状态。

      若会话不存在，调用此方法 SDK 自动创建会话并置顶。

      Parameters:
        `conversationType` - 会话类型 io.rong.imlib.model.Conversation.
        `id` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id 或聊天室 id。
        `channelId` - 消息所属会话的业务标识。
        `isTop` - 是否置顶。
        `needCreate` - 会话不存在时，是否创建会话。
        `needUpdateTime` - 是否更新会话时间
        `callback` - 设置置顶是否成功的回调。
      Since:

        私有云 5.6.2

    - #### setConversationsToTop

           abstract void setConversationsToTop(List<ConversationIdentifier> conversationIdentifiers, boolean isTop, boolean needCreate, IRongCoreCallback.ResultCallback<Boolean> callback)

      异步批量设置会话的置顶状态

      Parameters:
        `conversationIdentifiers` - 会话标识列表，最大数量为 20
        `isTop` - 是否置顶
        `needCreate` - 在没有会话时，是否创建会话
        `callback` - 回调结果。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。
      Since:

        5.6.7

    - #### getTotalUnreadCount

           abstract void getTotalUnreadCount(String channelId, IRongCoreCallback.ResultCallback<Integer> callback)

      获取所有会话的总未读消息数。

      注意：不包含聊天室，聊天室消息不计数。

      Parameters:
        `channelId` - 消息所属会话的业务标识
        `callback` - 未读消息数的回调。
      Since:

        5.1.1

    - #### getTotalUnreadCount

           abstract void getTotalUnreadCount(String channelId, boolean containBlocked, IRongCoreCallback.ResultCallback<Integer> callback)

      Since:

        5.2.3

    - #### getUnreadCount

           abstract void getUnreadCount(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<Integer> callback)

      获取指定会话的未读消息数。

      注意：不包含聊天室，聊天室消息不计数。

      Parameters:
        `conversationType` - 会话类型 io.rong.imlib.model.Conversation.
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id。
        `channelId` - 消息所属会话的业务标识。
        `callback` - 未读消息数的回调。
      Since:

        5.1.1

    - #### getUnreadCount

           abstract void getUnreadCount(IRongCoreCallback.ResultCallback<Integer> callback, String channelId, Array<ConversationType> conversationTypes)

      获取指定会话类型的总未读消息数。

      注意：不包含聊天室，聊天室消息不计数。

      Parameters:
        `callback` - 未读消息数的回调。
        `channelId` - 消息所属会话的业务标识。
        `conversationTypes` - 会话类型，可传多个会话类型。
      Since:

        5.1.1

    - #### getUnreadCount

           abstract void getUnreadCount(Array<ConversationType> conversationTypes, String channelId, boolean containBlocked, IRongCoreCallback.ResultCallback<Integer> callback)

      获取指定会话类型的总未读消息数。

      注意：不包含聊天室，聊天室消息不计数。

      Parameters:
        `conversationTypes` - 会话类型数组 io.rong.imlib.model.Conversation.
        `channelId` - 消息所属会话的业务标识。
        `containBlocked` - 是否包含免打扰消息的未读消息数。
        `callback` - 未读消息数的回调。
      Since:

        5.1.1

    - #### getMessageCount

           abstract void getMessageCount(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<Integer> callback)

      获取指定会话的消息总数。

      Parameters:
        `conversationType` - 会话类型 io.rong.imlib.model.Conversation.
        `targetId` - 会话 id。
        `channelId` - 消息所属会话的业务标识。
        `callback` - 消息总数的回调。
      Since:

        5.1.1

    - #### getLatestMessages

           abstract void getLatestMessages(ConversationType conversationType, String targetId, String channelId, int count, IRongCoreCallback.ResultCallback<List<Message>> callback)

      获取指定会话的最新消息。

      Parameters:
        `conversationType` - 会话类型 io.rong.imlib.model.Conversation.
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id 或聊天室 id。
        `channelId` - 消息所属会话的业务标识。
        `count` - 需要获取的消息数量。
        `callback` - 获取最新消息的回调，按照时间顺序从新到旧排列，如果会话中的消息数量小于参数 count 的值，会将该会话中的所有消息返回。
      Since:

        5.1.1

    - #### getHistoryMessages

           abstract void getHistoryMessages(ConversationType conversationType, String targetId, String channelId, String objectName, int oldestMessageId, int count, IRongCoreCallback.ResultCallback<List<Message>> callback)

      获取会话中符合条件的消息列表。

      返回的消息中不包含 oldestMessageId 对应那条消息，如果会话中的消息数量小于参数 count 的值，会将该会话中的所有消息返回。

      如：oldestMessageId 为 10，count 为 2，会返回 messageId 为 9 和 8 的 Message 对象列表。

      注意：不支持拉取聊天室 CHATROOM 历史消息

      该方法仅获取本地数据库中的消息。

      注意：since 5.4.4版本该方法支持超级群类型。超级群不会接收离线消息，超级群调用该接口会出现消息断档的情况，请使用断档消息接口获取超级群消息。

      Parameters:
        `conversationType` - 会话类型 ，不支持聊天室。
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id 。
        `channelId` - 消息所属会话的业务标识。
        `objectName` - 消息类型标识。
        `oldestMessageId` - 最后一条消息的 Id，获取此消息之前的 count 条消息,没有消息第一次调用应设置为:-1。
        `count` - 要获取的消息数量
        `callback` - 获取历史消息的回调，按照时间顺序从新到旧排列。
      Since:

        5.1.1

    - #### getHistoryMessages

           abstract void getHistoryMessages(ConversationType conversationType, String targetId, String channelId, String objectName, int baseMessageId, int count, RongCommonDefine.GetMessageDirection direction, IRongCoreCallback.ResultCallback<List<Message>> callback)

      获取会话中符合条件的消息列表。

      如：获取 messageId 为 22 的之前的 10条 图片消息，则相应参数为 getHistoryMessages(conversationType, targetId, "RC:ImgMsg", 22, 10, true, resultCallback)。

      注意：不支持拉取聊天室 CHATROOM 历史消息

      该方法仅获取本地数据库中的消息。

      注意：since 5.4.4版本该方法支持超级群类型。超级群不会接收离线消息，超级群调用该接口会出现消息断档的情况，请使用断档消息接口获取超级群消息。

      Parameters:
        `conversationType` - 会话类型 ，不支持聊天室。
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id。
        `channelId` - 消息所属会话的业务标识。
        `objectName` - 消息类型标识。如 RC:TxtMsg，RC:ImgMsg，RC:VcMsg 等 value 。
        `baseMessageId` - 起始消息 id。
        `count` - 需要获取的消息数量。
        `direction` - 要获取的消息相对于 baseMessageId 的方向 以指定的 baseMessageId 作为获取的起始点，时间早于 baseMessageId 则为 FRONT，晚于则为 BEHIND。
        `callback` - 获取历史消息的回调，按照时间顺序从新到旧排列。
      Since:

        5.1.1

    - #### getHistoryMessages

           abstract void getHistoryMessages(ConversationType conversationType, String targetId, String channelId, List<String> objectNames, long timestamp, int count, RongCommonDefine.GetMessageDirection direction, IRongCoreCallback.ResultCallback<List<Message>> callback)

      获取会话中符合条件的消息列表。

      如： 要获取 messageId 为 22 的之前的 10 条图片消息，和文字消息 objectNames 为字符串 List

          objectNames.add("RC:ImgMsg");
          objectNames.add("RC:TxtMsg");

      则相应参数为 getHistoryMessages(conversationType, targetId, objectNames, 22, 10, true, resultCallback)。

      该方法仅获取本地数据库中的消息。

      注意：since 5.4.4版本该方法支持超级群类型。超级群不会接收离线消息，超级群调用该接口会出现消息断档的情况，请使用断档消息接口获取超级群消息。

      Parameters:
        `conversationType` - 会话类型 ，不支持聊天室。
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id。
        `channelId` - 消息所属会话的业务标识。
        `objectNames` - 消息类型标识 List。如 RC:TxtMsg，RC:ImgMsg，RC:VcMsg 等构成的 List。
        `timestamp` - 当前消息时间戳。
        `count` - 需要获取的消息数量。
        `direction` - 要获取的消息相对于当前消息的方向 io.rong.imlib.RongCommonDefine.
        `callback` - 获取历史消息的回调，按照时间顺序从新到旧排列。
      Since:

        5.1.1

    - #### getRemoteHistoryMessages

           abstract void getRemoteHistoryMessages(ConversationType conversationType, String targetId, String channelId, long dateTime, int count, IRongCoreCallback.ResultCallback<List<Message>> callback)

      从服务器端获取指定时间之前的历史消息。（不支持超级群）

      区别于 getHistoryMessages，该接口是从融云服务器中拉取。从服务端拉取消息后，客户端会做排重，返回排重后的数据。通常用于更换新设备后，拉取历史消息。 使用的时候，建议优先通过 getHistoryMessages 从本地数据库拉取历史消息， 当本地数据库没有历史消息后，再通过此接口获取服务器历史消息，时间戳传入本地数据库里最早的消息时间戳。注意： 1. 此功能需要在融云开发者后台开启历史消息云存储功能。 2. 当本地数据库中已存在将要获取的消息时，此接口不会再返回数据。

      Parameters:
        `conversationType` - 会话类型。
        `targetId` - 目标会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id。
        `channelId` - 消息所属会话的业务标识。
        `dateTime` - 从该时间点开始获取消息。即：消息中的 sentTime getSentTime；如果本地库中没有消息，第一次可传 0，否则传入最早消息的sentTime，获取最新 count 条。
        `count` - 需要获取的消息数量， `1 < count <= 20`。
        `callback` - 获取历史消息的回调，按照时间顺序从新到旧排列。
      Since:

        5.1.1

    - #### getRemoteHistoryMessages

           abstract void getRemoteHistoryMessages(ConversationType conversationType, String targetId, String channelId, RemoteHistoryMsgOption remoteHistoryMsgOption, IRongCoreCallback.ResultCallback<List<Message>> callback)

      获取指定会话远端历史消息。（不支持超级群）

      此功能需要在融云开发者后台开启历史消息云存储功能。注意：不支持聊天室！

      Parameters:
        `conversationType` - 会话类型，不支持聊天室。
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id。
        `channelId` - 消息所属会话的业务标识。
        `remoteHistoryMsgOption` - 可配置的参数 RemoteHistoryMsgOption
        `callback` - 获取历史消息的回调，按照时间顺序从新到旧排列。
      Since:

        5.1.1

    - #### cleanRemoteHistoryMessages

           abstract void cleanRemoteHistoryMessages(ConversationType conversationType, String targetId, String channelId, long recordTime, IRongCoreCallback.OperationCallback callback)

      清除服务器上存储的历史消息。

      根据会话类型和目标会话 id 清除某一会话指定时间戳之前的服务端历史消息, 清除成功后只能从服务端获取到该时间戳之后的历史消息。

      注意：必须先开通历史消息云存储功能！

      Parameters:
        `conversationType` - 会话类型。
        `targetId` - 会话 id。
        `channelId` - 消息所属会话的业务标识。
        `recordTime` - 清除消息截止时间戳，`0 <= recordTime <= 当前会话最后一条消息的 sentTime，0 清除所有消息，其他值清除小于等于 recordTime 的消息`。
        `callback` - 清除消息的回调。
      Since:

        5.1.1

    - #### cleanHistoryMessages

           abstract void cleanHistoryMessages(ConversationType conversationType, String targetId, String channelId, long recordTime, boolean cleanRemote, IRongCoreCallback.OperationCallback callback)

      删除指定时间戳之前的消息，可选择是否同时删除服务器端消息

      此方法可从服务器端清除历史消息，但是必须先开通历史消息云存储功能。

      根据会话类型和会话 id 清除某一会话指定时间戳之前的本地数据库消息（服务端历史消息）， 清除成功后只能从本地数据库（服务端）获取到该时间戳之后的历史消息。

      Parameters:
        `conversationType` - 会话类型。
        `targetId` - 会话 id。
        `channelId` - 消息所属会话的业务标识。
        `recordTime` - 清除消息截止时间戳，`0 <= recordTime <= 当前会话最后一条消息的 sentTime,0 清除所有消息，其他值清除小于等于 recordTime 的消息`。
        `cleanRemote` - 是否删除服务器端消息
        `callback` - 清除消息的回调。
      Since:

        5.1.1

    - #### getHistoryMessages

           abstract void getHistoryMessages(ConversationType conversationType, String targetId, int oldestMessageId, int count, String channelId, IRongCoreCallback.ResultCallback<List<Message>> callback)

      获取会话中，从指定消息之前、指定数量的、指定消息类型的最新消息实体。

      注意：不支持聊天室！

      该方法仅获取本地数据库中的消息。

      注意：since 5.4.4版本该方法支持超级群类型。超级群不会接收离线消息，超级群调用该接口会出现消息断档的情况，请使用断档消息接口获取超级群消息。

      Parameters:
        `conversationType` - 会话类型，不支持聊天室。参考 Conversation.
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id。
        `oldestMessageId` - 最后一条消息的 id。获取此消息之前的 count 条消息，没有消息第一次调用应设置为 -1。
        `count` - 要获取的消息数量。
        `channelId` - 消息所属会话的业务标识。
        `callback` - 获取历史消息的回调，按照时间顺序从新到旧排列。
      Since:

        5.1.1

    - #### deleteMessages

           abstract void deleteMessages(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<Boolean> callback)

      删除某个会话中的所有消息。

      此接口删除指定会话中数据库的所有消息，同时会清理数据库空间，减少占用空间。

      Parameters:
        `conversationType` - 会话类型，不支持聊天室。参考 Conversation.
        `targetId` - 会话 id。根据不同的 conversationType，可能是 userId, groupId, discussionId。
        `channelId` - 消息所属会话的业务标识。
        `callback` - 删除是否成功的回调。
      Since:

        5.1.1

    - #### deleteRemoteMessages

           abstract void deleteRemoteMessages(ConversationType conversationType, String targetId, String channelId, Array<Message> messages, IRongCoreCallback.OperationCallback callback)

      批量删除某个会话中的指定远端消息（同时删除对应的本地消息）。

      一次批量操作仅支持删除属于同一个会话的消息，请确保消息列表中的所有消息来自同一会话，一次最多删除 100 条消息。

      注意：不支持聊天室！

      5.6.9版本以下不支持超级群会话类型，从 5.6.9 版本开始支持超级群会话类型

      Parameters:
        `conversationType` - 会话类型，不支持聊天室。参考 Conversation.
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、客服 id。
        `channelId` - 消息所属会话的业务标识。
        `messages` - 要删除的消息数组， 数组大小不能超过 100 条。
        `callback` - 删除是否成功的回调。
      Since:

        5.1.1

    - #### clearMessages

           abstract void clearMessages(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<Boolean> callback)

      删除某个会话中的所有消息。

      注意：不支持聊天室！

      Parameters:
        `conversationType` - 会话类型，不支持聊天室。参考 Conversation.
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id。
        `channelId` - 消息所属会话的业务标识。
        `callback` - 清空是否成功的回调。
      Since:

        5.1.1

    - #### clearMessages

           abstract void clearMessages(List<ClearMessageOption> clearMessageOptions, IRongCoreCallback.ResultCallback<Boolean> callback)

      异步批量删除指定会话早于（含）发送时间的所有本地数据库消息。

      此方法删除数据库中会话早于（含）发送时间的消息记录, 时间戳传 0 清除所有消息

      支持的会话类型：单聊, 群聊, 聊天室, 系统消息

      Parameters:
        `clearMessageOptions` - 删除消息参数列表，最大数量为 20
        `callback` - 删除是否成功的回调。
      Since:

        5.6.7

    - #### clearRemoteMessages

           abstract void clearRemoteMessages(List<ClearMessageOption> clearMessageOptions, boolean isDeleteLocal, IRongCoreCallback.OperationCallback callback)

      异步批量删除服务端指定会话早于（含）发送时间的所有远端消息（可以删除对应的本地消息）

      时间戳传 0 清除所有消息

      支持的会话类型：单聊, 群聊, 聊天室, 系统消息

      Parameters:
        `clearMessageOptions` - 删除消息参数列表，最大数量为 20
        `isDeleteLocal` - 是否删除本地消息
        `callback` - 删除是否成功的回调。
      Since:

        5.6.7

    - #### clearMessagesUnreadStatus

           abstract void clearMessagesUnreadStatus(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<Boolean> callback)

      清除某个会话中的未读消息数。

      注意：不支持聊天室，不支持超级群

      Parameters:
        `conversationType` - 会话类型，不支持聊天室。参考 Conversation.
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id。
        `channelId` - 消息所属会话的业务标识。
        `callback` - 清除是否成功的回调。
      Since:

        5.1.1

    - #### getTextMessageDraft

           abstract void getTextMessageDraft(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<String> callback)

      获取会话中的草稿信息。

      Parameters:
        `conversationType` - 会话类型。
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id 或聊天室 id。
        `channelId` - 消息所属会话的业务标识。
        `callback` - 获取草稿文字内容的回调。
      Since:

        5.1.1

    - #### saveTextMessageDraft

           abstract void saveTextMessageDraft(ConversationType conversationType, String targetId, String channelId, String content, IRongCoreCallback.ResultCallback<Boolean> callback)

      保存会话草稿信息。

      Parameters:
        `conversationType` - 会话类型。参考 io.rong.imlib.model.Conversation.
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id 或聊天室 id。
        `channelId` - 消息所属会话的业务标识。
        `content` - 草稿的文字内容。
        `callback` - 是否保存成功的回调。
      Since:

        5.1.1

    - #### clearTextMessageDraft

           abstract void clearTextMessageDraft(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<Boolean> callback)

      删除指定会话中的草稿信息。

      Parameters:
        `conversationType` - 会话类型。
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id 或聊天室 id。
        `channelId` - 消息所属会话的业务标识。
        `callback` - 是否清除成功的回调。
      Since:

        5.1.1

    - #### insertOutgoingMessage

           abstract void insertOutgoingMessage(ConversationType type, String targetId, String channelId, SentStatus sentStatus, MessageContent content, long sentTime, IRongCoreCallback.ResultCallback<Message> resultCallback)

      向本地会话中插入一条消息，方向为发送。

      这条消息只是插入本地会话，不会实际发送给服务器和对方。

      插入消息需为入库消息，即 ISPERSISTED，否者会回调 RC_INVALID_PARAMETER_MSG_TAG

      Parameters:
        `type` - 会话类型。
        `targetId` - 会话 id。比如私人会话时，是对方的 id； 群组会话时，是群 id； 讨论组会话时，则为该讨论组的 id。
        `channelId` - 消息所属会话的业务标识。
        `sentStatus` - 发送状态 Message.
        `content` - 消息内容。如io.rong.message.
        `sentTime` - 消息的发送时间 getSentTime 。
        `resultCallback` - 获得消息发送实体的回调。
      Since:

        5.1.1

    - #### insertOutgoingMessage

           abstract void insertOutgoingMessage(ConversationType type, String targetId, String channelId, boolean canIncludeExpansion, SentStatus sentStatus, MessageContent content, long sentTime, IRongCoreCallback.ResultCallback<Message> resultCallback)

      Since:

        5.2.4

    - #### insertIncomingMessage

           abstract void insertIncomingMessage(ConversationType type, String targetId, String channelId, String senderUserId, ReceivedStatus receivedStatus, MessageContent content, long sentTime, IRongCoreCallback.ResultCallback<Message> resultCallback)

      向本地会话中插入一条消息，方向为接收。

      这条消息只是插入本地会话，不会实际发送给服务器和对方。插入消息需为入库消息，即 ISPERSISTED，否者会回调 RC_INVALID_PARAMETER_MSG_TAG。

      Parameters:
        `type` - 会话类型。
        `targetId` - 会话 id。比如私人会话时，是对方的 id； 群组会话时，是群 id； 讨论组会话时，则为该讨论组的 id。
        `channelId` - 消息所属会话的业务标识。
        `senderUserId` - 发送方 id
        `receivedStatus` - 接收状态 Message.
        `content` - 消息内容。如 TextMessageio.rong.message.
        `sentTime` - 消息的发送时间 getSentTime 。
        `resultCallback` - 获得消息发送实体的回调。
      Since:

        5.1.1

    - #### insertMessage

           abstract void insertMessage(Message message, IRongCoreCallback.ResultCallback<Message> resultCallback)

    - #### sendMessage

           abstract void sendMessage(ConversationType type, String targetId, String channelId, MessageContent content, String pushContent, String pushData, IRongCoreCallback.ISendMessageCallback callback)

      根据会话类型，发送消息。

      通过 io.rong.imlib.IRongCoreCallback.ISendMessageCallback 中的方法回调发送的消息状态及消息体。 注意：1 秒钟发送消息不能超过 5 条。

      Parameters:
        `type` - 会话类型。
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id 或聊天室 id。
        `channelId` - 消息所属会话的业务标识。
        `content` - 消息内容，例如 io.rong.message.
        `pushContent` - 当下发远程推送消息时，在通知栏里会显示这个字段。 如果发送的是自定义消息，该字段必须填写，否则无法收到远程推送消息。 如果发送 SDK 中默认的消息类型，例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg，则不需要填写，默认已经指定。
        `pushData` - 远程推送附加信息。如果设置该字段，用户在收到 push 消息时，能通过 getPushData 方法获取。
        `callback` - 发送消息的回调。参考 io.rong.imlib.IRongCoreCallback.
      Since:

        5.1.1

    - #### sendDirectionalMessage

           abstract void sendDirectionalMessage(ConversationType type, String targetId, String channelId, MessageContent content, Array<String> userIds, String pushContent, String pushData, SendMessageOption option, IRongCoreCallback.ISendMessageCallback callback)

      发送定向消息。

      此方法用于在群组、超级群中发送消息给其中的部分用户，其它用户不会收到这条消息。

      通过 io.rong.imlib.IRongCoreCallback.ISendMessageCallback 中的方法回调发送的消息状态及消息体。

      此方法只能发送非多媒体消息，多媒体消息如io.rong.message.ImageMessage 或其他继承自 io.rong.message.MediaMessageContent 的消息须调用 sendDirectionalMessage

      如果您使用 IMLib，可以使用此方法发送定向消息；如果您使用 IMKit，请使用 RongIM 中的同名方法发送定向消息，否则不会自动更新 UI。

      从 5.6.9 版本开始，支持超级群会话类型。

      Parameters:
        `type` - 会话类型。
        `targetId` - 会话 id。可能是群组 Id 、超级群 Id。
        `channelId` - 消息所属会话的业务标识。
        `content` - 消息内容，例如 io.rong.message.
        `userIds` - 讨论组或群组会话中将会接收到此消息的用户列表。
        `pushContent` - 当下发远程推送消息时，在通知栏里会显示这个字段。 如果发送的是自定义消息，该字段必须填写，否则无法收到远程推送消息。 如果发送 SDK 中默认的消息类型，例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg，则不需要填写，默认已经指定。
        `pushData` - 远程推送附加信息。如果设置该字段，用户在收到远程推送消息时，能通过 getPushData 方法获取。
        `option` - 发送消息附加选项，目前仅支持设置 isVoIPPush，如果对端设备是 iOS，设置 isVoIPPush 为 True，会走 VoIP 通道推送 Push。
        `callback` - 发送消息的回调，参考 io.rong.imlib.IRongCoreCallback.
      Since:

        5.1.1

    - #### sendDirectionalMessage

           abstract void sendDirectionalMessage(Message message, Array<String> userIds, String pushContent, String pushData, SendMessageOption option, IRongCoreCallback.ISendMessageCallback callback)

      发送定向消息。

      此方法用于在群组、超级群中发送消息给其中的部分用户，其它用户不会收到这条消息。

      通过 io.rong.imlib.IRongCoreCallback.ISendMessageCallback 中的方法回调发送的消息状态及消息体。

      此方法只能发送非多媒体消息，多媒体消息如io.rong.message.ImageMessage 或其他继承自 io.rong.message.MediaMessageContent 的消息须调用 sendDirectionalMessage

      如果您使用 IMLib，可以使用此方法发送定向消息；如果您使用 IMKit，请使用 RongIM 中的同名方法发送定向消息，否则不会自动更新 UI。

      从 5.6.9 版本开始，支持超级群会话类型。

      Parameters:
        `message` - 发送消息的实体。
        `userIds` - 讨论组或群组会话中将会接收到此消息的用户列表。
        `pushContent` - 当下发远程推送消息时，在通知栏里会显示这个字段。 如果发送的是自定义消息，该字段必须填写，否则无法收到远程推送消息。 如果发送 SDK 中默认的消息类型，例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg，则不需要填写，默认已经指定。
        `pushData` - 远程推送附加信息。如果设置该字段，用户在收到远程推送消息时，能通过 getPushData 方法获取。
        `option` - 发送消息附加选项，目前仅支持设置 isVoIPPush，如果对端设备是 iOS，设置 isVoIPPush 为 True，会走 VoIP 通道推送 Push。
        `callback` - 发送消息的回调，参考 io.rong.imlib.IRongCoreCallback.
      Since:

        5.2.3

    - #### sendDirectionalMediaMessage

           abstract void sendDirectionalMediaMessage(Message message, Array<String> userIds, String pushContent, String pushData, IRongCoreCallback.ISendMediaMessageCallback callback)

      发送定向多媒体消息。

      向会话中特定的某些用户发送消息，会话中其他用户不会收到消息。 发送前构造 Message 消息实体，消息实体中的 content 必须为多媒体消息。 例如：ImageMessage 、 或其他继承自 MediaMessageContent 的消息。

      从 5.6.9 版本开始，支持超级群会话类型。

      Parameters:
        `message` - 发送消息的实体。
        `userIds` - 定向接收者 id 数组。
        `pushContent` - 当下发远程推送消息时，在通知栏里会显示这个字段。 如果发送的是自定义消息，该字段必须填写，否则无法收到远程推送消息。 如果发送 SDK 中默认的消息类型，例如: RC:TxtMsg, RC:VcMsg, RC:ImgMsg，则不需要填写，默认已经指定。
        `pushData` - 远程推送附加信息。如果设置该字段，用户在收到远程推送消息时，能通过 getPushData 方法获取。
        `callback` - 发送消息的回调 IRongCoreCallback.SendMediaMessageCallback。
      Since:

        5.2.4

    - #### sendImageMessage

           abstract void sendImageMessage(ConversationType type, String targetId, String channelId, MessageContent content, String pushContent, String pushData, IRongCoreCallback.SendImageMessageCallback callback)

      发送图片消息。

      如果您使用IMLib，可以使用此方法发送图片消息；

      如果您使用 IMKit，请使用 RongIM 中的同名方法发送图片消息，否则不会自动更新 UI。

      Parameters:
        `type` - 会话类型。
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id 或聊天室 id。
        `channelId` - 消息所属会话的业务标识。
        `content` - 消息内容，例如 TextMessage, io.rong.message.
        `pushContent` - 当下发远程推送消息时，在通知栏里会显示这个字段。 如果发送的是自定义消息，该字段必须填写，否则无法收到远程推送消息。 如果发送 SDK 中默认的消息类型，例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg，则不需要填写，默认已经指定。
        `pushData` - 远程推送附加信息。如果设置该字段，用户在收到远程推送消息时，能通过 getPushData 方法获取。
        `callback` - 发送消息的回调。参考 IRongCoreCallback.SendImageMessageCallback。
      Since:

        5.1.1

    - #### downloadMedia

           abstract void downloadMedia(ConversationType conversationType, String targetId, String channelId, IRongCoreEnum.MediaType mediaType, String imageUrl, IRongCoreCallback.DownloadMediaCallback callback)

      下载多媒体文件。

      如果本地缓存中包含此文件，则从本地缓存中直接获取，否则将从服务器端下载。

      Parameters:
        `conversationType` - 会话类型。
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id 或聊天室 id。
        `channelId` - 消息所属会话的业务标识。
        `mediaType` - 文件类型。
        `imageUrl` - 文件的 URL 地址。
        `callback` - 下载文件的回调。
      Since:

        5.1.1

    - #### getConversationNotificationStatus

           abstract void getConversationNotificationStatus(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<ConversationNotificationStatus> callback)

      获取会话消息提醒状态。

      注意：不支持聊天室！

      Parameters:
        `conversationType` - 会话类型，不支持聊天室（聊天室默认是不接受会话消息提醒的）。
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id。
        `callback` - 获取消息提醒状态的回调。
      Since:

        5.1.1

    - #### setConversationNotificationStatus

           abstract void setConversationNotificationStatus(ConversationType conversationType, String targetId, String channelId, ConversationNotificationStatus notificationStatus, IRongCoreCallback.ResultCallback<ConversationNotificationStatus> callback)

      设置会话消息提醒状态。

      注意：不支持聊天室！

      Parameters:
        `conversationType` - 会话类型。不支持聊天室类型，因为聊天室默认就是不接受消息提醒的。
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id。
        `channelId` - 消息所属会话的业务标识。
        `notificationStatus` - 会话设置的消息提醒状态 。
        `callback` - 设置状态的回调。
      Since:

        5.1.1

    - #### clearConversations

           abstract void clearConversations(IRongCoreCallback.ResultCallback<Boolean> callback, String channelId, Array<ConversationType> conversationTypes)

      清空指定会话类型列表中的所有会话及会话信息。（不支持超级群）

      Parameters:
        `callback` - 是否清空成功的回调。
        `channelId` - 消息所属会话的业务标识。
        `conversationTypes` - 需要清空的会话类型列表。
      Since:

        5.1.1

    - #### getTypingUserListFromConversation

           abstract Collection<TypingStatus> getTypingUserListFromConversation(ConversationType conversationType, String targetId, String channelId)

      获取会话正在输入的用户列表

      Parameters:
        `conversationType` - 会话类型
        `targetId` - 会话 id
        `channelId` - 消息所属会话的业务标识
      Returns:

        会话正在输入的用户列表

      Since:

        5.1.1

    - #### sendTypingStatus

           abstract void sendTypingStatus(ConversationType conversationType, String targetId, String channelId, String typingContentType)

      向会话中发送正在输入的状态，目前只支持单聊。

      Parameters:
        `conversationType` - 会话类型
        `targetId` - 会话 id
        `channelId` - 消息所属会话的业务标识
        `typingContentType` - 正在输入的消息的类型名， typingContentType 为用户当前正在编辑的消息类型名，即 Message 中 getObjectName 的返回值。 如文本消息，传类型名 "RC:TxtMsg"。
      Since:

        5.1.1

    - #### sendReadReceiptMessage

           abstract void sendReadReceiptMessage(ConversationType conversationType, String targetId, String channelId, long timestamp)

      发送某个会话中的消息阅读回执

      使用 IMLib 可以注册监听 setReadReceiptListener；使用 IMkit 直接设置 rc_config.xml 中 `rc_read_receipt` 为 true。

      Parameters:
        `conversationType` - 会话类型（只适用 PRIVATE 和 ENCRYPTED 类型）
        `targetId` - 会话 id
        `channelId` - 消息所属会话的业务标识。
        `timestamp` - 该会话中已读的最后一条消息的发送时间戳getSentTime
      Since:

        5.1.1

    - #### sendReadReceiptMessage

           abstract void sendReadReceiptMessage(ConversationType conversationType, String targetId, String channelId, long timestamp, IRongCoreCallback.ISendMessageCallback callback)

      发送某个会话中的消息阅读回执。

      使用 IMLib 可以注册监听 setReadReceiptListener；使用 IMkit 直接设置 rc_config.xml 中 `rc_read_receipt` 为 true。

      Parameters:
        `conversationType` - 会话类型（只适用 PRIVATE 和 ENCRYPTED 类型）
        `targetId` - 会话 id
        `channelId` - 消息所属会话的业务标识。
        `timestamp` - 会话中已读的最后一条消息的发送时间戳 getSentTime
        `callback` - 发送已读回执消息的回调
      Since:

        5.1.1

    - #### getUnreadMentionedMessages

           abstract void getUnreadMentionedMessages(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<List<Message>> callback)

      获取会话中未读的 @ 消息。

      Parameters:
        `conversationType` - 会话类型。
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id。
        `channelId` - 消息所属会话的业务标识。
        `callback` - 获取未读 @ 消息的回调。回调里返回的消息列表，按照时间顺序从旧到新。
      Since:

        5.1.1

    - #### clearMessagesUnreadStatus

           abstract void clearMessagesUnreadStatus(ConversationType conversationType, String targetId, String channelId, long timestamp, IRongCoreCallback.OperationCallback callback)

      清除某个会话中的未读消息数。

      注意：不支持聊天室，不支持超级群

      Parameters:
        `conversationType` - 会话类型，不支持聊天室。
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id。
        `channelId` - 消息所属会话的业务标识。
        `timestamp` - 该会话已阅读的最后一条消息的发送时间戳。参考 getSentTime。
        `callback` - 清除是否成功的回调。
      Since:

        5.1.1

    - #### sendReadReceiptResponse

           abstract void sendReadReceiptResponse(ConversationType type, String targetId, String channelId, List<Message> messageList, IRongCoreCallback.OperationCallback callback)

      发送已读回执（只支持群组和讨论组）。

      Parameters:
        `type` - 会话类型
        `targetId` - 会话 id
        `channelId` - 消息所属会话的业务标识。
        `messageList` - 会话中需要发送已读回执的消息列表
        `callback` - 回调函数
      Since:

        5.1.1

    - #### syncConversationReadStatus

           abstract void syncConversationReadStatus(ConversationType type, String targetId, String channelId, long timestamp, IRongCoreCallback.OperationCallback callback)

      同步会话阅读状态。

      Parameters:
        `type` - 会话类型
        `targetId` - 会话 id
        `channelId` - 消息所属会话的业务标识。
        `timestamp` - 会话中已读的最后一条消息的发送时间戳 getSentTime
        `callback` - 回调函数
      Since:

        5.1.1

    - #### searchConversations

           abstract void searchConversations(String keyword, Array<ConversationType> conversationTypes, String channelId, Array<String> objectNames, IRongCoreCallback.ResultCallback<List<SearchConversationResult>> resultCallback)

      根据关键字搜索会话。

      此方法可快速返回匹配的会话列表，并且会话中包含已匹配的消息数量。通过 {SearchConversationResult#getMatchCount()} 得到。

      注意：如果需要自定义消息也能被搜索到，需要在自定义消息中实现 getSearchableWord 方法。

      Parameters:
        `keyword` - 搜索的关键字。
        `conversationTypes` - 搜索的会话类型。注意：包含超级群会话类型时，超级群会话只搜索已存储到本地的消息记录。
        `channelId` - 消息所属会话的业务标识。
        `objectNames` - 搜索的消息类型,例如:RC:TxtMsg。
        `resultCallback` - 搜索结果回调。
      Since:

        5.1.1

    - #### searchMessages

           abstract void searchMessages(ConversationType conversationType, String targetId, String channelId, String keyword, int count, long beginTime, IRongCoreCallback.ResultCallback<List<Message>> resultCallback)

      根据关键字搜索指定会话中的消息。

      注意：如果需要自定义消息也能被搜索到，需要在自定义消息中实现 getSearchableWord 方法。超级群会话类型只支持搜索已存储到本地的消息。

      Parameters:
        `conversationType` - 指定的会话类型。
        `targetId` - 指定的会话 id。
        `channelId` - 消息所属会话的业务标识。
        `keyword` - 搜索的关键字。
        `count` - 返回的搜索结果数量， 传 0 时会返回所有搜索到的消息， 非 0 时，逐页返回。
        `beginTime` - 查询 beginTime 之前的消息， 传 0 时从最新消息开始搜索，从该时间往前搜索。
        `resultCallback` - 搜索结果回调。
      Since:

        5.1.1

    - #### searchMessages

           abstract void searchMessages(ConversationType conversationType, String targetId, String channelId, String keyword, long startTime, long endTime, int offset, int limit, IRongCoreCallback.ResultCallback<List<Message>> resultCallback)

      根据关键字，指定时间段搜索指定会话中的消息。

      注意：如果需要自定义消息也能被搜索到，需要在自定义消息中实现 getSearchableWord 方法。超级群会话类型只支持搜索已存储到本地的消息。

      Parameters:
        `conversationType` - 指定的会话类型。
        `targetId` - 指定的会话 id。
        `channelId` - 消息所属会话的业务标识。
        `keyword` - 搜索的关键字。
        `startTime` - 开始时间
        `endTime` - 结束时间
        `offset` - 偏移量
        `limit` - 返回的搜索结果数量，limit 需大于 0，最大值为 100，如果大于 100，会默认成 100
        `resultCallback` - 搜索结果回调。
      Since:

        5.1.2

    - #### searchMessages

           abstract void searchMessages(ConversationIdentifier conversationIdentifier, String keyword, Array<String> objectNameList, int limit, long startTime, IRongCoreCallback.ResultCallback<List<Message>> resultCallback)

      根据关键字搜索指定会话中，指定消息类型的本地历史消息

      此方法允许应用根据关键词、对象名列表、时间范围等条件在一个特定对话中搜索消息。搜索结果将通过回调方式返回。

      Parameters:
        `conversationIdentifier` - 会话类型、会话 ID
        `keyword` - 关键字，非空
        `objectNameList` - 消息类型数组,支持传入多个，如(文本: "RC:TxtMsg")
        `limit` - 最大的查询数量[最大 100，超过则使用 100]
        `startTime` - 查询 startTime 之前的消息（传 0 表示从最新消息开始搜索），单位：毫秒
        `resultCallback` - 搜索结果的回调接口。成功时返回消息列表，失败时返回错误信息。
      Since:

        5.8.1

    - #### searchMessagesByUser

           abstract void searchMessagesByUser(ConversationType conversationType, String targetId, String channelId, String userId, int count, long beginTime, IRongCoreCallback.ResultCallback<List<Message>> resultCallback)

      根据用户 id 搜索指定会话中的消息。

      注意：如果需要自定义消息也能被搜索到，需要在自定义消息中实现 getSearchableWord 方法。超级群会话类型只支持搜索已存储到本地的消息。

      Parameters:
        `conversationType` - 指定的会话类型。
        `targetId` - 指定的会话 id。
        `channelId` - 消息所属会话的业务标识。
        `userId` - 用户 id。
        `count` - 返回的搜索结果数量`0 < count <= 100`，如果 `count > 100`，则返回 100。
        `beginTime` - 查询记录的起始时间， 传 0 时从最新消息开始搜索，从该时间往前搜索。
        `resultCallback` - 搜索结果回调。
      Since:

        5.1.1

    - #### searchMessagesForChannels

           abstract void searchMessagesForChannels(ConversationType conversationType, String targetId, Array<String> channelIds, String keyword, long startTime, int limit, IRongCoreCallback.ResultCallback<List<Message>> resultCallback)

      根据用户id、会话业务标识、关键字等搜索指定会话中的消息。

      注意：如果需要自定义消息也能被搜索到，需要在自定义消息中实现 getSearchableWord 方法。

      Parameters:
        `conversationType` - 指定的会话类型。
        `targetId` - 指定的会话 id。
        `channelIds` - 消息所属会话的业务标识。(0 <channelIds的数量 <= 50, 不符合则返回 RC_INVALID_PARAMETER_CHANNEL_ID)
        `keyword` - 关键词。(0<长度<=1000)
        `startTime` - 查询记录的起始时间， 传 0 时从最新消息开始搜索，从该时间往前搜索。
        `limit` - 返回的搜索结果数量 `0 < limit <= 100`，如果 `limit > 100`，则返回 100。
        `resultCallback` - 搜索结果回调。
      Since:

        5.6.2

    - #### searchMessagesByUserForChannels

           abstract void searchMessagesByUserForChannels(ConversationType conversationType, String targetId, Array<String> channelIds, String userId, long startTime, int limit, IRongCoreCallback.ResultCallback<List<Message>> resultCallback)

      根据会话id、会话业务标识、用户ID等搜索指定会话中的消息。

      注意：如果需要自定义消息也能被搜索到，需要在自定义消息中实现 getSearchableWord 方法。

      Parameters:
        `conversationType` - 指定的会话类型。
        `targetId` - 指定的会话 id。
        `channelIds` - 消息所属会话的业务标识。(0 <channelIds的数量 <= 50, 不符合则返回 RC_INVALID_PARAMETER_CHANNEL_ID)
        `userId` - 用户ID。
        `startTime` - 查询记录的起始时间， 传 0 时从最新消息开始搜索，从该时间往前搜索。
        `limit` - 返回的搜索结果数量 `0 < limit <= 100`，如果 `limit > 100`，则返回 100。
        `resultCallback` - 搜索结果回调。
      Since:

        5.6.2

    - #### searchMessagesByUserForAllChannel

           abstract void searchMessagesByUserForAllChannel(ConversationType conversationType, String targetId, String userId, long startTime, int limit, IRongCoreCallback.ResultCallback<List<Message>> resultCallback)

      根据会话id、用户id等搜索指定会话中的消息。(包含所有的 ChannelId)

      注意：如果需要自定义消息也能被搜索到，需要在自定义消息中实现 getSearchableWord 方法。

      Parameters:
        `conversationType` - 指定的会话类型。
        `targetId` - 指定的会话 id。
        `userId` - 用户ID。
        `startTime` - 查询记录的起始时间， 传 0 时从最新消息开始搜索，从该时间往前搜索。
        `limit` - 返回的搜索结果数量 `0 < limit <= 100`，如果 `limit > 100`，则返回 100。
        `resultCallback` - 搜索结果回调。
      Since:

        5.6.2

    - #### getHistoryMessages

           abstract void getHistoryMessages(ConversationType conversationType, String targetId, String channelId, long sentTime, int before, int after, IRongCoreCallback.ResultCallback<List<Message>> resultCallback)

      在会话中搜索指定消息的前 `before` 数量和 `after` 数量的消息。

      返回的消息列表中会包含指定的消息。消息列表时间顺序从新到旧。

      该方法仅获取本地数据库中的消息。

      注意：since 5.4.4版本该方法支持超级群类型。超级群不会接收离线消息，超级群调用该接口会出现消息断档的情况，请使用断档消息接口获取超级群消息。

      Parameters:
        `conversationType` - 指定的会话类型。
        `targetId` - 指定的会话 id。
        `channelId` - 消息所属会话的业务标识。
        `sentTime` - 指定消息的发送时间，不能为 0。
        `before` - 指定消息的前部分消息数量。
        `after` - 指定消息的后部分消息数量。
        `resultCallback` - 搜索结果回调。 上拉加载时，返回数据中包含当前消息；例：当前消息 id 为 500， before = 0 after = 10，返回 510 - 500 ，按消息 id 倒序。
      Since:

        5.1.1

    - #### getTheFirstUnreadMessage

           abstract void getTheFirstUnreadMessage(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<Message> callback)

      获取第一条未读消息。

      Parameters:
        `conversationType` - 会话类型
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id 或聊天室 id。
        `channelId` - 消息所属会话的业务标识。
        `callback` - 回调
      Since:

        5.1.1

    - #### setSyncConversationReadStatusListener

           abstract void setSyncConversationReadStatusListener(IConversationChannelListener.ConversationChannelSyncConversationReadStatusListener listener)

      设置多端同步会话阅读状态监听。

      Parameters:
        `listener` - 多端同步会话阅读状态监听 。
      Since:

        5.1.1

    - #### setConversationChannelTypingStatusListener

           abstract void setConversationChannelTypingStatusListener(IConversationChannelListener.ConversationChannelTypingStatusListener listener)

      设置输入状态监听器。

      当输入状态发生变化时，回调 onTypingStatusChanged (Conversation.ConversationType, String, String, Collection)} 对于单聊而言，当对方正在输入时，监听会触发一次；当对方不处于输入状态时，该监听还会触发一次，但回调里输入用户列表为空。

      Parameters:
        `listener` - 输入状态监听器
      Since:

        5.1.1

    - #### getMessages

           abstract void getMessages(ConversationType conversationType, String targetId, String channelId, HistoryMessageOption historyMessageOption, IRongCoreCallback.IGetMessageCallback callback)

      获取指定会话历史消息。

      此方法先从本地获取历史消息，本地有缺失的情况下会从服务端同步缺失的部分；从服务端同步失败的时候会返回非 0 的 errorCode，同时把本地能取到的消息回调上去。 必须开通历史消息云存储功能。

      Parameters:
        `conversationType` - 会话类型
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id 或聊天室 id。
        `channelId` - 消息所属会话的业务标识。
        `historyMessageOption` - HistoryMessageOption
        `callback` - 回调
      Since:

        5.1.2

    - #### getMessages

           abstract void getMessages(ConversationType conversationType, String targetId, String channelId, HistoryMessageOption historyMessageOption, IRongCoreCallback.IGetMessageCallbackEx getMessageCallback)

      获取指定会话历史消息。

      此方法先从本地获取历史消息，本地有缺失的情况下会从服务端同步缺失的部分；从服务端同步失败的时候会返回非 0 的 errorCode，同时把本地能取到的消息回调上去。 必须开通历史消息云存储功能。

      Parameters:
        `conversationType` - 会话类型
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id 或聊天室 id。
        `channelId` - 消息所属会话的业务标识。
        `historyMessageOption` - HistoryMessageOption
        `getMessageCallback` - 回调
      Since:

        5.1.2

    - #### getConversationTopStatus

           abstract void getConversationTopStatus(String targetId, ConversationType conversationType, String channelId, IRongCoreCallback.ResultCallback<Boolean> callback)

      获取会话的置顶状态 同时设置 setConversationStatusListener 监听器，在onConversationTagChanged回调中更新会话置顶状态，保证会话置顶的准确性

      此方法会从本地数据库中，读取该会话是否置顶。

      Parameters:
        `targetId` - 会话 ID
        `conversationType` - 会话类型
        `channelId` - 消息所属会话的业务标识
        `callback` - 是否置顶的结果回调
      Since:

        5.1.5

    - #### getUnreadCount

           abstract void getUnreadCount(String targetId, ConversationType conversationType, Array<String> objectNames, String channelId, IRongCoreCallback.ResultCallback<Integer> callback)

      获取指定会话内指定消息类型的未读消息数（聊天室会话除外）

      Parameters:
        `targetId` - 会话目标 ID
        `conversationType` - 会话类型
        `objectNames` - 消息类型数组
        `channelId` - 消息所属会话的业务标识
        `callback` - 未读数结果的回调
      Since:

        5.1.5

    - #### getPrivateMessageDeliverTime

           abstract void getPrivateMessageDeliverTime(String uid, String channelId, IRongCoreCallback.ResultCallback<Long> callback)

      获取单聊某条消息的送达时间

      Parameters:
        `uid` - 消息 uid getUId
        `channelId` - 消息所属会话的业务标识。
        `callback` - 获取单聊某条消息的送达时间回调，回调返回参数为消息送达时间，时间单位为毫秒
      Since:

        SDK 5.1.7

    - #### getGroupMessageDeliverList

           abstract void getGroupMessageDeliverList(String uid, String targetId, String channelId, IRongCoreListener.IGetGroupMessageDeliverListCallback callback)

      获取群组消息送达列表（只支持群组）

      只查询本地数据库中 UID 存在且发送方向为 SEND 对方已经接收的消息。

      Parameters:
        `uid` - 消息 uid getUId
        `targetId` - 群组 id
        `channelId` - 消息所属会话的业务标识。
        `callback` - 获取群组消息送达列表回调
      Since:

        SDK 5.1.7

    - #### getMessageByUid

           abstract void getMessageByUid(String uid, IRongCoreCallback.ResultCallback<Message> callback)

      通过全局唯一 id 获取消息实体。

      Parameters:
        `uid` - 全局唯一 id（服务器消息唯一 id）。
        `callback` - 获取消息的回调。
      Since:

        5.1.7

    - #### getUltraGroupUnreadMentionedCount

           abstract void getUltraGroupUnreadMentionedCount(String targetId, IRongCoreCallback.ResultCallback<Integer> callback)

      获取超级群会话中被 @ 的消息数

      注意：此方法只支持超级群的会话类型！

      Parameters:
        `targetId` - 会话 ID
        `callback` - 超级群会话中被 @ 的消息数回调
      Since:

        SDK 5.1.8

    - #### sendUltraGroupTypingStatus

           abstract void sendUltraGroupTypingStatus(String targetId, String channelId, IRongCoreEnum.UltraGroupTypingStatus typingStatus, IRongCoreCallback.OperationCallback callback)

      发送超级群输入状态

      Parameters:
        `targetId` - 会话 id
        `channelId` - 消息所属会话的业务标识
        `typingStatus` - IRongCoreEnum.UltraGroupTypingStatus
        `callback` - 发送超级群输入状态回调
      Since:

        5.2.0

    - #### deleteUltraGroupMessagesForAllChannel

           abstract void deleteUltraGroupMessagesForAllChannel(String targetId, long timestamp, IRongCoreCallback.ResultCallback<Boolean> callback)

      删除本地所有 channel 特定时间之前的消息

      Parameters:
        `targetId` - 会话 id
        `timestamp` - 时间戳
        `callback` - 删除本地所有 channel 特定时间之前的消息回调
      Since:

        5.2.0

    - #### deleteUltraGroupMessages

           abstract void deleteUltraGroupMessages(String targetId, String channelId, long timestamp, IRongCoreCallback.ResultCallback<Boolean> callback)

      删除本地特定 channel 特点时间之前的消息

      Parameters:
        `targetId` - 会话 id
        `channelId` - 消息所属会话的业务标识
        `timestamp` - 时间戳
        `callback` - 删除本地所有 channel 特定时间之前的消息回调
      Since:

        5.2.0

    - #### deleteRemoteUltraGroupMessages

           abstract void deleteRemoteUltraGroupMessages(String targetId, String channelId, long timestamp, IRongCoreCallback.OperationCallback callback)

      删除服务端特定 channel 特定时间之前的消息

      Parameters:
        `targetId` - 会话 id
        `channelId` - 消息所属会话的业务标识i
        `timestamp` - 时间戳
        `callback` - 删除服务端特定 channel 特定时间之前的消息回调
      Since:

        5.2.0

    - #### modifyUltraGroupMessage

           abstract void modifyUltraGroupMessage(String msgUid, MessageContent content, IRongCoreCallback.OperationCallback callback)

      修改消息

      注意：此方法只能修改相同频道的同类型消息，仅能修改自己发送的消息

      Parameters:
        `msgUid` - 消息 UID
        `content` - MessageContent
        `callback` - 修改消息回调
      Since:

        5.2.0

    - #### syncUltraGroupReadStatus

           abstract void syncUltraGroupReadStatus(String targetId, String channelId, long timestamp, IRongCoreCallback.OperationCallback callback)

      上报超级群的已读时间

      Parameters:
        `targetId` - 会话 ID
        `channelId` - 消息所属会话的业务标识
        `timestamp` - 已读时间
        `callback` - 上报超级群的已读时间回调
      Since:

        5.2.0

    - #### setUltraGroupReadTimeListener

           abstract void setUltraGroupReadTimeListener(IRongCoreListener.UltraGroupReadTimeListener listener)

      设置超级群已读时间回调监听器

      此方法只支持超级群的会话类型

      Parameters:
        `listener` - 超级群已读时间回调监听器
      Since:

        5.2.0

    - #### setUltraGroupTypingStatusListener

           abstract void setUltraGroupTypingStatusListener(IRongCoreListener.UltraGroupTypingStatusListener listener)

      设置超级群输入状态监听器

      Parameters:
        `listener` - 超级群输入状态监听器
      Since:

        5.2.0

    - #### setUltraGroupMessageChangeListener

           abstract void setUltraGroupMessageChangeListener(IRongCoreListener.UltraGroupMessageChangeListener listener)

      设置超级群消息变更监听器

      Parameters:
        `listener` - 超级群消息变更监听器
      Since:

        5.2.0

    - #### updateUltraGroupMessageExpansion

           abstract void updateUltraGroupMessageExpansion(Map<String, String> expansion, String messageUId, IRongCoreCallback.OperationCallback callback)

      更新超级群消息扩展信息

      每条消息携带扩展信息键值对最大值 300个，单次设置扩展信息键值对最大值 20个

      Parameters:
        `expansion` - 要更新的消息扩展信息键值对，类型是 HashMap；Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式，不支持汉字。Value 可以输入空格。
        `messageUId` - 消息 messageUId
        `callback` - 更新扩展信息回调
      Since:

        5.2.0

    - #### removeUltraGroupMessageExpansion

           abstract void removeUltraGroupMessageExpansion(String messageUId, List<String> keyArray, IRongCoreCallback.OperationCallback callback)

      删除超级群消息扩展信息中特定的键值对

      Parameters:
        `messageUId` - 消息 messageUId
        `keyArray` - 消息扩展信息中待删除的 key 的列表，类型是 ArrayList
        `callback` - 删除消息扩展信息回调
      Since:

        5.2.0

    - #### recallUltraGroupMessage

           abstract void recallUltraGroupMessage(Message message, IRongCoreCallback.ResultCallback<RecallNotificationMessage> callback)

      撤回超级群消息

      Parameters:
        `message` - 被撤回的消息
        `callback` - onSuccess 里回调 RecallNotificationMessage，IMLib 已经被撤回的消息需用 替换， 用户需要在界面上对 RecallNotificationMessage 进行展示。
      Since:

        5.2.0

    - #### recallUltraGroupMessage

           abstract void recallUltraGroupMessage(Message message, boolean isDelete, IRongCoreCallback.ResultCallback<RecallNotificationMessage> callback)

      撤回超级群消息

      Parameters:
        `message` - 被撤回的消息
        `isDelete` - 是否删除本地消息
        `callback` - onSuccess 里回调 RecallNotificationMessage，IMLib 已经被撤回的消息需用 替换， 用户需要在界面上对 RecallNotificationMessage 进行展示。
      Since:

        5.2.2

    - #### getUltraGroupConversationListForAllChannel

           abstract void getUltraGroupConversationListForAllChannel(IRongCoreCallback.ResultCallback<List<Conversation>> callback)

      获取超级群当前用户本地会话列表，该方法返回的是以下类型的会话列表：私聊，群组，讨论组，系统会话。

      此方法会从本地数据库中，读取会话列表。返回的会话列表排序规则为:按照时间从前往后排列，如果有置顶的会话，则置顶的会话会排列在前面。 如果您需要获取其它类型的会话列表,可以使用getConversationList} 。 需要在连接数据库打开回调 `OnDatabaseOpened` 后调用，IRongCoreCallback.ConnectCallback 。

      Parameters:
        `callback` - 获取会话列表的回调。
      Since:

        5.2.0

    - #### getBatchRemoteUltraGroupMessages

           abstract void getBatchRemoteUltraGroupMessages(List<Message> msgList, IRongCoreCallback.IGetBatchRemoteUltraGroupMessageCallback callback)

      从服务获取批量消息

      Parameters:
        `msgList` - 消息列表
        `callback` - 从服务获取批量消息回调
      Since:

        5.2.0

    - #### getConversationListForAllChannel

           abstract void getConversationListForAllChannel(ConversationType conversationType, String targetId, IRongCoreCallback.ResultCallback<List<Conversation>> callback)

      获取特定会话下所有频道的会话列表（只支持单群聊，超级群，不支持聊天室）

      Parameters:
        `conversationType` - 会话类型
        `targetId` - 会话 Id
        `callback` - 获取特定会话下所有频道的会话列表回调
      Since:

        5.2.0

    - #### setNotificationQuietHoursLevel

           abstract void setNotificationQuietHoursLevel(String startTime, int spanMinutes, IRongCoreEnum.PushNotificationQuietHoursLevel level, IRongCoreCallback.OperationCallback callback)

      设置消息通知免打扰时间。

      Parameters:
        `startTime` - 起始时间 格式 HH:MM:SS。
        `spanMinutes` - 设置的免打扰结束时间距离起始时间的间隔分钟数。 0 <spanMinutes <1440。 比如，您设置的起始时间是 00：00， 01:00，则 <spanMinutes <为 60 分钟。设置为 1439 代表全天免打扰 （23 * 60 + 59 = 1439 ）。
        `callback` - 消息通知免打扰时间回调。
      Since:

        5.2.2

    - #### removeNotificationQuietHours

           abstract void removeNotificationQuietHours(IRongCoreCallback.OperationCallback callback)

      移除消息通知免打扰时间。

      Parameters:
        `callback` - 移除消息通知免打扰时间回调。
      Since:

        5.2.2

    - #### getNotificationQuietHoursLevel

           abstract void getNotificationQuietHoursLevel(IRongCoreCallback.GetNotificationQuietHoursCallbackEx callback)

      获取消息通知免打扰时间。

      Parameters:
        `callback` - 消息通知免打扰时间回调。参考 IRongCoreCallback.GetNotificationQuietHoursCallback 。
      Since:

        5.2.2

    - #### setConversationChannelNotificationLevel

           abstract void setConversationChannelNotificationLevel(ConversationType conversationType, String targetId, String channelId, IRongCoreEnum.PushNotificationLevel level, IRongCoreCallback.OperationCallback callback)

      设置会话消息提醒状态。取消设置，请调用此方法，level 传入 PUSH_NOTIFICATION_LEVEL_ALL_MESSAGE

      注意：不支持聊天室！

      注意：超级群通过该接口对具体频道进行免打扰设置

      Parameters:
        `conversationType` - 会话类型。不支持聊天室类型，因为聊天室默认就是不接受消息提醒的。
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id。
        `channelId` - 消息所属会话的业务标识。
        `level` - 会话设置的消息提醒级别。
        `callback` - 设置状态的回调。
      Since:

        5.2.2

    - #### setConversationsNotificationLevel

           abstract void setConversationsNotificationLevel(List<ConversationIdentifier> conversationIdentifiers, IRongCoreEnum.PushNotificationLevel level, IRongCoreCallback.OperationCallback callback)

      异步批量设置会话的消息提醒状态

      取消设置，请调用此方法，level 传入 * io.rong.imlib.IRongCoreEnum.PushNotificationLevel#PUSH_NOTIFICATION_LEVEL_ALL_MESSAGE

      注意：不支持聊天室！

      注意：超级群通过该接口对具体频道进行免打扰设置

      Parameters:
        `conversationIdentifiers` - 会话标识列表，最大数量为 20
        `level` - 会话设置的消息提醒级别。
        `callback` - 回调结果
      Since:

        5.6.7

    - #### getConversationChannelNotificationLevel

           abstract void getConversationChannelNotificationLevel(ConversationType conversationType, String targetId, String channelId, IRongCoreCallback.ResultCallback<IRongCoreEnum.PushNotificationLevel> callback)

      获取会话消息提醒状态。

      注意：不支持聊天室！

      Parameters:
        `conversationType` - 会话类型，不支持聊天室（聊天室默认是不接受会话消息提醒的）。
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id。
        `callback` - 获取消息提醒状态的回调。
      Since:

        5.2.2

    - #### setConversationNotificationLevel

           abstract void setConversationNotificationLevel(ConversationType conversationType, String targetId, IRongCoreEnum.PushNotificationLevel level, IRongCoreCallback.OperationCallback callback)

      指定会话免打扰设置

      注意：超级群调用该接口，相当于设置了 channelId 为 空 的频道的免打扰，不会屏蔽整个超级群会话下所有频道的免打扰

      Parameters:
        `conversationType` - 会话类型。不支持聊天室类型，因为聊天室默认就是不接受消息提醒的。
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id。
        `level` - 会话设置的消息提醒级别。
        `callback` - 设置状态的回调。
      Since:

        5.2.2

    - #### getConversationNotificationLevel

           abstract void getConversationNotificationLevel(ConversationType conversationType, String targetId, IRongCoreCallback.ResultCallback<IRongCoreEnum.PushNotificationLevel> callback)

      获取指定会话免打扰状态。

      注意：不支持聊天室！

      Parameters:
        `conversationType` - 会话类型，不支持聊天室（聊天室默认是不接受会话消息提醒的）。
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id。
        `callback` - 获取消息提醒状态的回调。
      Since:

        5.2.2

    - #### setConversationTypeNotificationLevel

           abstract void setConversationTypeNotificationLevel(ConversationType conversationType, IRongCoreEnum.PushNotificationLevel level, IRongCoreCallback.OperationCallback callback)

      指定会话类型免打扰设置

      按照特定会话类型进行免打扰设置 明确支持：单聊，群聊，超级群，系统会话

      Parameters:
        `conversationType` - 会话类型。不支持聊天室类型，因为聊天室默认就是不接受消息提醒的。
        `level` - 会话设置的消息提醒级别。
        `callback` - 设置状态的回调。
      Since:

        5.2.2

    - #### getConversationTypeNotificationLevel

           abstract void getConversationTypeNotificationLevel(ConversationType conversationType, IRongCoreCallback.ResultCallback<IRongCoreEnum.PushNotificationLevel> callback)

      获取指定会话类型免打扰状态。

      注意：不支持聊天室！

      Parameters:
        `conversationType` - 会话类型，不支持聊天室（聊天室默认是不接受会话消息提醒的）。
        `callback` - 获取消息提醒状态的回调。
      Since:

        5.2.2

    - #### getUltraGroupConversationDefaultNotificationLevel

           abstract void getUltraGroupConversationDefaultNotificationLevel(String targetId, IRongCoreCallback.ResultCallback<IRongCoreEnum.PushNotificationLevel> callback)

      查询指定超级群默认通知配置

      Parameters:
        `targetId` - 会话 ID
        `callback` - 查询指定超级群默认通知配置回调。
      Since:

        5.2.2

    - #### getUltraGroupConversationChannelDefaultNotificationLevel

           abstract void getUltraGroupConversationChannelDefaultNotificationLevel(String targetId, String channelId, IRongCoreCallback.ResultCallback<IRongCoreEnum.PushNotificationLevel> callback)

      查询指定超级群指定频道默认通知配置

      Parameters:
        `targetId` - 会话 ID
        `channelId` - 消息所属会话的业务标识。
        `callback` - 查询指定超级群指定频道默认通知配置回调。
      Since:

        5.2.2

    - #### setUltraGroupConversationDefaultNotificationLevel

           abstract void setUltraGroupConversationDefaultNotificationLevel(String targetId, IRongCoreEnum.PushNotificationLevel level, IRongCoreCallback.OperationCallback callback)

      Since:

        5.2.2

    - #### setUltraGroupConversationChannelDefaultNotificationLevel

           abstract void setUltraGroupConversationChannelDefaultNotificationLevel(String targetId, String channelId, IRongCoreEnum.PushNotificationLevel level, IRongCoreCallback.OperationCallback callback)

      Since:

        5.2.2

    - #### getUltraGroupUnreadCount

           abstract void getUltraGroupUnreadCount(String targetId, IRongCoreCallback.ResultCallback<Integer> callback)

      获取指定超级群下所有频道的未读消息总数

      Parameters:
        `targetId` - 会话 ID
        `callback` - 获取指定超级群下所有频道的未读消息总数接口回调。
      Since:

        5.2.2

    - #### getUltraGroupAllUnreadCount

           abstract void getUltraGroupAllUnreadCount(IRongCoreCallback.ResultCallback<Integer> callback)

      获取超级群会话类型的所有未读消息数

      Parameters:
        `callback` - 获取超级群会话类型的所有未读消息数回调。
      Since:

        5.2.2

    - #### getUltraGroupAllUnreadMentionedCount

           abstract void getUltraGroupAllUnreadMentionedCount(IRongCoreCallback.ResultCallback<Integer> callback)

      获取超级群会话类型的@消息未读数接口

      Parameters:
        `callback` - 获取超级群会话类型的@消息未读数接口回调。
      Since:

        5.2.2

    - #### setUltraGroupConversationListener

           abstract void setUltraGroupConversationListener(IRongCoreListener.UltraGroupConversationListener listener)

      设置超级群会话监听器

      Since:

        5.2.2

    - #### getConversationListWithAllChannel

           abstract void getConversationListWithAllChannel(IRongCoreCallback.ResultCallback<List<Conversation>> callback, Array<ConversationType> conversationTypes)

    - #### getConversationListWithAllChannelByPage

           abstract void getConversationListWithAllChannelByPage(IRongCoreCallback.ResultCallback<List<Conversation>> callback, Array<ConversationType> conversationTypes, long timeStamp, int count)

    - #### searchMessageForAllChannel

           abstract void searchMessageForAllChannel(String targetId, ConversationType conversationType, String keyword, int count, long timestamp, IRongCoreCallback.ResultCallback<List<Message>> callback)

    - #### searchMessageByTimestampForAllChannel

           abstract void searchMessageByTimestampForAllChannel(String targetId, ConversationType conversationType, String keyword, long startTime, long endTime, int offset, int limit, IRongCoreCallback.ResultCallback<List<Message>> callback)

    - #### searchConversationForAllChannel

           abstract void searchConversationForAllChannel(String keyword, Array<ConversationType> conversationTypes, Array<String> objName, IRongCoreCallback.ResultCallback<List<SearchConversationResult>> callback)

    - #### getUltraGroupChannelList

           abstract void getUltraGroupChannelList(String targetId, IRongCoreEnum.UltraGroupChannelType channelType, IRongCoreCallback.ResultCallback<List<Conversation>> callback)

      获取超级群频道列表

      Parameters:
        `targetId` - 超级群 id
        `channelType` - 频道类型
        `callback` - 结果回调
      Since:

        5.2.4

    - #### setUltraGroupChannelListener

           abstract void setUltraGroupChannelListener(IRongCoreListener.UltraGroupChannelListener listener)

      超级群频道事件监听

      Since:

        5.2.4

    - #### getUnreadCount

           abstract void getUnreadCount(List<ConversationType> conversationTypes, List<IRongCoreEnum.PushNotificationLevel> levels, IRongCoreCallback.ResultCallback<Integer> callback)

      获取会话未读消息数

      Parameters:
        `conversationTypes` - 会话类型列表：[单聊、群聊、超级群]
        `levels` - 免打扰类型列表 [PushNotificationLevel]
        `callback` - 获取会话未读消息数回调
      Since:

        5.2.5

    - #### getUnreadMentionedCount

           abstract void getUnreadMentionedCount(List<ConversationType> conversationTypes, List<IRongCoreEnum.PushNotificationLevel> levels, IRongCoreCallback.ResultCallback<Integer> callback)

      获取获取会话未读 `@` 消息数

      Parameters:
        `conversationTypes` - 会话类型列表：[群聊、超级群]
        `levels` - 免打扰类型列表 [PushNotificationLevel]
        `callback` - 获取获取会话未读 `@` 消息数 回调
      Since:

        5.2.5

    - #### getUltraGroupUnreadCount

           abstract void getUltraGroupUnreadCount(String targetId, List<IRongCoreEnum.PushNotificationLevel> levels, IRongCoreCallback.ResultCallback<Integer> callback)

      获取指定超级群会话的未读消息数（包括所有频道)

      Parameters:
        `targetId` - 超级群会话 ID
        `levels` - 免打扰类型列表 [PushNotificationLevel]
        `callback` - 获取指定超级群会话的未读消息数（包括所有频道) 回调
      Since:

        5.2.5

    - #### getUltraGroupUnreadMentionedCount

           abstract void getUltraGroupUnreadMentionedCount(String targetId, List<IRongCoreEnum.PushNotificationLevel> levels, IRongCoreCallback.ResultCallback<Integer> callback)

      获取指定超级群会话的未读`@` 消息数（包括所有频道）

      Parameters:
        `targetId` - 超级群会话 ID
        `levels` - 免打扰类型列表 [PushNotificationLevel]
        `callback` - 获取指定超级群会话的未读`@` 消息数（包括所有频道）回调
      Since:

        5.2.5

    - #### getUnreadMentionedMessages

           abstract void getUnreadMentionedMessages(ConversationType conversationType, String targetId, String channelId, int count, boolean desc, IRongCoreCallback.ResultCallback<List<Message>> callback)

      Since:

        5.2.5

    - #### getUltraGroupUnreadMentionedDigests

           abstract void getUltraGroupUnreadMentionedDigests(String targetId, String channelId, long sendTime, int count, IRongCoreCallback.ResultCallback<List<MessageDigestInfo>> callback)

      获取超级群会话类型未读的@消息摘要列表接口

      Parameters:
        `targetId` - 超级群会话 ID
        `channelId` - 消息所属会话的业务标识。
        `sendTime` - 消息发送的时间[0代表从第一条开始查询]
        `count` - 查询数量 [0 - 50]，超过范围上报 INVALID_PARAMETER_COUNT 错误码
        `callback` - 获取超级群会话类型未读的@消息摘要列表接口回调
      Since:

        5.2.5

    - #### getBatchLocalMessages

           abstract void getBatchLocalMessages(ConversationType conversationType, String targetId, String channelId, List<String> messageUIDs, IRongCoreCallback.IGetMessagesByUIDsCallback callback)

      Parameters:
        `conversationType` - 会话类型，支持单聊、群聊、超级群、聊天室会话类型
        `targetId` - 会话 ID
        `channelId` - 频道 ID，非超级群时传入 null
        `messageUIDs` - 要获取的消息 UID 列表，最多支持 20 条
        `callback` - 结果回调
      Since:

        5.2.5.2 批量获取本地消息

    - #### setUserGroupStatusListener

           abstract void setUserGroupStatusListener(IRongCoreListener.UserGroupStatusListener userGroupStatusListener)

      设置用户组状态监听器

      Since:

        5.4.0

    - #### getUltraGroupConversationUnreadInfoList

           abstract void getUltraGroupConversationUnreadInfoList(Array<String> targetIds, IRongCoreCallback.ResultCallback<List<ConversationUnreadInfo>> callback)

      根据超级群的TargetId数组，获取每个超级群下所有频道的会话的未读相关信息

      Parameters:
        `targetIds` - 超级群会话的TargetId数组，最多支持 20 个
        `callback` - 结果回调
      Since:

        5.4.6

    - #### getUltraGroupMessageCountByTimeRange

           abstract void getUltraGroupMessageCountByTimeRange(String targetId, Array<String> channelIds, long startTime, long endTime, IRongCoreCallback.ResultCallback<Integer> callback)

      获取某个超级群指定 channel 列表，某段时间范围内的消息数量，如果 channel_id_list 为空，则返回全部 channel id 的消息数量

      Parameters:
        `targetId` - 会话 ID
        `channelIds` - 频道 ID 列表
        `startTime` - 开始时间
        `endTime` - 结束时间
        `callback` - 回调结果
      Since:

        5.6.4

    - #### getMessageCountByTimeRange

           abstract void getMessageCountByTimeRange(String targetId, ConversationType conversationType, long startTime, long endTime, IRongCoreCallback.ResultCallback<Integer> callback)

      获取某个会话某段时间范围内的消息数量，如果为超级群则需获取所有 channel id 的消息数量

      Parameters:
        `targetId` - 会话 ID
        `conversationType` - 会话类型，支持单聊、群聊、超级群、聊天室会话类型
        `startTime` - 开始时间
        `endTime` - 结束时间
        `callback` - 回调结果
      Since:

        5.6.4

    - #### sendReadReceiptMessageV4

           abstract void sendReadReceiptMessageV4(ConversationType conversationType, String targetId, String channelId, String startMessageUID, String endMessageUID, IRongCoreCallback.OperationCallback callback)

      发送已读回执v4(支持单群聊)

      Parameters:
        `conversationType` - 会话类型
        `targetId` - 会话 id
        `channelId` - 频道 ID，非超级群时传入 null
        `startMessageUID` - 群聊已读开始的消息UID,单聊为""
        `endMessageUID` - 已读最后一条消息的UID
        `callback` - 回调函数
      Since:

        5.6.7

    - #### getMessageReadReceiptV4

           abstract void getMessageReadReceiptV4(String targetId, String channelId, String messageUID, IRongCoreCallback.ResultCallbackEx<Integer, Integer, List<GroupMessageReader>> callback)

      获取消息已读用户列表（支持群组）

      Parameters:
        `targetId` - 会话 id
        `channelId` - 频道 ID，非超级群时传入 null
        `messageUID` - 会话中需要发送已读回执的消息
        `callback` - 回调函数
      Since:

        5.6.7