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` | `removeConversation(ConversationType conversationType, String targetId, String channelId, boolean isDeleteRemote, IRongCoreCallback.OperationCallback 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` | `setConversationsToTop(List<ConversationIdentifier> conversationIdentifiers, boolean isTop, ConversationTopOption option, 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，同时把本地能取到的消息回调上去。 必须开通历史消息云存储功能。 以下为单群聊场景下的详细说明： 产生消息断档的典型情况有： 1.
    `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(NotificationQuietHoursSetting setting, IRongCoreCallback.OperationCallback callback)` | 设置消息通知免打扰时间。
    `abstract void` | `setNotificationQuietHoursLevel(String startTime, int spanMinutes, IRongCoreEnum.PushNotificationQuietHoursLevel level, IRongCoreCallback.OperationCallback callback)` | 设置消息通知免打扰时间。
    `abstract void` | `removeNotificationQuietHours(IRongCoreCallback.OperationCallback callback)` | 移除消息通知免打扰时间。
    `abstract void` | `getNotificationQuietHoursLevel(IRongCoreCallback.ResultCallback<NotificationQuietHoursSetting> 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)` | 获取某个会话中的消息阅读回执V4
    `abstract void` | `removeRemoteConversations(List<ConversationIdentifier> conversationIdentifiers, IRongCoreCallback.OperationCallback callback)` | 删除远端会话列表
    `abstract void` | `setReadTimestamp(ConversationIdentifier conversationIdentifier, long timestamp, IRongCoreCallback.OperationCallback 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

          @Deprecated() 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

    - #### removeConversation

           abstract void removeConversation(ConversationType conversationType, String targetId, String channelId, boolean isDeleteRemote, IRongCoreCallback.OperationCallback callback)

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

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

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

        5.20.0

    - #### 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

    - #### setConversationsToTop

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

      更新会话的置顶状态。

      Parameters:
        `conversationIdentifiers` - 需要更新的会话
        `isTop` - 是否置顶
        `option` - 置顶状态信息，如果为空，则默认都传 false
        `callback` - 结果回调
      Since:

        5.18.0

    - #### 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，同时把本地能取到的消息回调上去。 必须开通历史消息云存储功能。

      以下为单群聊场景下的详细说明：

      产生消息断档的典型情况有： 1. 超过消息离线存储最长时间未登录。例如默认离线消息的最长存储时间是 7 天，若用户连续 10 天未登录，当再次登录时， 服务器只会推送最近 7 天的离线消息，那么更早的 3 天内的消息本地就没有，这段期间称为断档。 2. 客户启用了群组离线消息存储条数配置。例如配置群组离线消息存储条数为 100 条，若用户离线期间， 该群离线消息超过 100 条，当再次登录时，服务器只会推送最后的 100 条消息，那么更早的消息本地也没有，这段期间称为断档。

      本地存储消息是否断档的判断逻辑： 当连接成功后，服务器主动下发消息分为两种情况，一种是单条直发，一种是通知拉取（一般是会话消息量较大的情况）。还有一种 是客户端主动拉取消息。对于通知拉取和主动拉取，服务端返回结果中都带有连续置信区间的起始和终止时间戳，客户端会将这段时 间记录在本地数据库中，视为该会话的连续置信区间。如果用户一直在线情况下，收到单条直发消息，也会将当前消息的时间戳与本 地存储的该会话置信区间做拼接，视为连续置信区间。当用户调用此接口时，会根据用户传入的获取消息条数 count 来从本地数据库 中获取，如果获取的所有消息时间戳都在连续置信区间内，就视为无断档，可直接返回给用户。否则会以断档处时间戳为起点，向服 务端拉取历史消息，拉回来消息的同时，会更新该会话的连续置信区间，并将入库类型消息与本地数据库的消息合并，再返回给用户。

      结果回调中，messages 为本次拉取到的消息列表，timestamp 为下次拉取的起始时间戳，isRemaining 为服务器是否还有未拉取的消息。 分为以下几种情况： 1. messages 数量等于 count。代表本次的调用已拉取到 count 条消息，且消息是连续的。用户可根据 isRemaining 结果决定是否要继续拉取。 2. messages 数量小于 count（包括 0 的情况），且 isRemaining 为 false。 代表本次调用已拉取到所有连续消息，且服务端也无更多消息可供拉取。 3. messages 数量小于 count（包括 0 的情况），且 isRemaining 为 true。 代表本次调用只拉取到这么多连续消息，虽然尝试从服务端拉取断档处消息，但拉回来的都是不存储类型的消息。 同时服务端还有更多消息可供拉取，需要用户使用返回的 timestamp 继续拉取。

      以下情况需要注意： 1. 调用此接口返回的消息，会在本地标记为连续消息。如果后面调用了删除消息相关接口从本地数据库删除了已连续的消息， 会认为此处仍然连续无断档。下次再调用此接口时，不会从服务端拉取此处已删除的消息。 2. 当用户一直在线时，如果服务端通过 ServerAPI 将当前用户踢出某群，过一段时间再加回来。 如果服务端执行以上操作的同时什么都不做，客户端是无感知的。用户在被踢出群的这段时间内，此群消息接收不到， 等加回来后又可以收之后的消息，但 SDK 会认为此间消息一直连续无断档，下次调用此接口时，不会从服务端拉取退群期间的消息。 如果想补偿这段时间消息，需要调用拉取该时段的远端消息接口。为避免执行上述操作时，客户端无感知， 建议在服务端执行踢人操作前，同时发送一条小灰条消息通知被踢人，避免用户误解。

      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(NotificationQuietHoursSetting setting, IRongCoreCallback.OperationCallback callback)

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

      Parameters:
        `setting` - 消息通知免打扰时间设置。
        `callback` - 消息通知免打扰时间回调。
      Since:

        5.14.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.ResultCallback<NotificationQuietHoursSetting> callback)

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

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

        5.14.0

    - #### getNotificationQuietHoursLevel

           abstract void getNotificationQuietHoursLevel(IRongCoreCallback.GetNotificationQuietHoursCallbackEx callback)

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

      Parameters:
        `callback` - 消息通知免打扰时间回调。参考 IRongCoreCallback.GetNotificationQuietHoursCallbackEx 。
      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)

      获取某个会话中的消息阅读回执V4

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

        5.6.7

    - #### removeRemoteConversations

           abstract void removeRemoteConversations(List<ConversationIdentifier> conversationIdentifiers, IRongCoreCallback.OperationCallback callback)

      删除远端会话列表

      Parameters:
        `conversationIdentifiers` - 会话标识符的列表，用于指定要获取的会话。 参考 。
        `callback` - 回调函数

    - #### setReadTimestamp

           abstract void setReadTimestamp(ConversationIdentifier conversationIdentifier, long timestamp, IRongCoreCallback.OperationCallback callback)

      设置实时会话的已读时间

      Parameters:
        `conversationIdentifier` - 会话标识符，用于指定要获取的会话。 参考 。
        `timestamp` - 已读时间
        `callback` - 回调函数