Package io.rong.imkit

## Class RongIM

- All Implemented Interfaces:

      public class RongIM

- - ### Nested Class Summary

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

  - ### Field Summary

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

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---

  - ### Enum Constant Summary

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

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `static RongIM` | `getInstance()` |
    `static void` | `init(Application application, String appKey)` | 初始化 SDK，在整个应用程序全局只需要调用一次, 建议在 Application 继承类中调用。 调用此接口传入 AppKey 与在 AndroidManifest.
    `static void` | `init(Application application, String appKey, boolean enablePush)` | 初始化 SDK，在整个应用程序全局只需要调用一次, 建议在 Application 继承类中调用。 调用此接口传入 AppKey 与在 AndroidManifest.
    `static void` | `init(Application application, String appKey, boolean enablePush, Boolean isMainProcess)` | 初始化 SDK，在整个应用程序全局只需要调用一次, 建议在 Application 继承类中调用。 调用此接口传入 AppKey 与在 AndroidManifest.
    `static void` | `init(Application application, String appKey, InitOption option)` | 初始化 SDK，在整个应用程序全局只需要调用一次, 建议在 Application 继承类中调用。 调用此接口传入 AppKey 与在 AndroidManifest.
    `static void` | `connect(String token, ConnectCallback connectCallback)` | 连接服务器，在整个应用程序全局，只需要调用一次。 调用该接口，SDK 会在连接失败之后尝试重连，将出现以下两种情况： 第一、连接成功，回调 onSuccess(userId)。 第二、出现 SDK 无法处理的错误，回调 onError(errorCode)（如 token 非法），并不再重连 连接成功后，SDK 将接管所有的重连处理。当因为网络原因断线的情况下，SDK 会不停重连直到连接成功为止，不需要您做额外的连接操作。
    `static void` | `connect(String token, int timeLimit, ConnectCallback connectCallback)` | 连接服务器，在整个应用程序全局，只需要调用一次。 调用该接口，SDK 会在 timeLimit 秒内尝试重连，直到出现下面三种情况之一： 第一、连接成功，回调 onSuccess(userId)。 第二、超时，回调 onError(RC_CONNECT_TIMEOUT)，并不再重连。 第三、出现 SDK 无法处理的错误，回调 onError(errorCode)（如 token 非法），并不再重连。 连接成功后，SDK 将接管所有的重连处理。当因为网络原因断线的情况下，SDK 会不停重连直到连接成功为止，不需要您做额外的连接操作。
    `static void` | `registerMessageTemplate(IMessageProvider provider)` | 注册消息模板。
    `static void` | `addOnReceiveMessageListener(OnReceiveMessageWrapperListener listener)` | 设置接收消息的监听器（主线程回调listener）。 所有接收到的消息、通知、状态都经由此处设置的监听器处理。包括私聊消息、讨论组消息、群组消息、聊天室消息以及各种状态。
    `static void` | `removeOnReceiveMessageListener(OnReceiveMessageWrapperListener listener)` | 移除接收消息的监听器。
    `static void` | `addAsyncOnReceiveMessageListener(OnReceiveMessageWrapperListener listener)` | 设置接收消息的监听器（工作线程回调listener）。 所有接收到的消息、通知、状态都经由此处设置的监听器处理。包括私聊消息、讨论组消息、群组消息、聊天室消息以及各种状态。
    `static void` | `removeAsyncOnReceiveMessageListener(OnReceiveMessageWrapperListener listener)` | 移除接收消息的监听器（异步）。
    `static void` | `setConnectionStatusListener(ConnectionStatusListener listener)` | 设置连接状态变化的监听器。
    `static void` | `setConversationClickListener(ConversationClickListener listener)` | 设置会话界面操作的监听器。
    `static void` | `setConversationListBehaviorListener(ConversationListBehaviorListener listener)` | 设置会话列表界面操作的监听器。
    `static void` | `setUserInfoProvider(UserInfoProvider userInfoProvider, boolean isCacheUserInfo)` | 设置用户信息的提供者，供 RongIM 调用获取用户名称和头像信息。 设置后，当 sdk 界面展示用户信息时，会回调 getUserInfo 使用者只需要根据对应的 userId 提供对应的用户信息。 如果需要异步从服务器获取用户信息，使用者可以在此方法中发起异步请求，然后返回 null 信息。 在异步请求结果返回后，根据返回的结果调用 refreshUserInfoCache 刷新用户信息。
    `static void` | `setGroupInfoProvider(GroupInfoProvider groupInfoProvider, boolean isCacheGroupInfo)` | 设置群组信息的提供者。 设置后，当 sdk 界面展示群组信息时，会回调 getGroupInfo 使用者只需要根据对应的 groupId 提供对应的群组信息。 如果需要异步从服务器获取群组信息，使用者可以在此方法中发起异步请求，然后返回 null 信息。 在异步请求结果返回后，根据返回的结果调用 refreshGroupInfoCache 刷新信息。
    `static void` | `setGroupUserInfoProvider(GroupUserInfoProvider groupUserInfoProvider, boolean isCacheGroupUserInfo)` | 设置GroupUserInfo提供者，供RongIM 调用获取GroupUserInfo 可以使用此方法，修改群组中用户昵称 设置后，当 sdk 界面展示用户信息时，会回调 getGroupUserInfo 使用者只需要根据对应的 groupId, userId 提供对应的用户信息 GroupUserInfo。 如果需要异步从服务器获取用户信息，使用者可以在此方法中发起异步请求，然后返回 null 信息。 在异步请求结果返回后，根据返回的结果调用 refreshGroupUserInfoCache 刷新信息。
    `static void` | `setLocationProvider(LocationProvider locationProvider)` | 设置位置信息的提供者。
    `static void` | `setPublicServiceBehaviorListener(PublicServiceBehaviorListener listener)` | 设置公众号界面操作的监听器。
    `static void` | `setPublicServiceProfileProvider(PublicServiceProfileProvider publicServiceProfileProvider)` | 设置公众服务账号信息的提供者，供 RongIM 调用获公众服务账号名称，头像信息和公众服务号菜单。 目前 sdk 默认的公众号服务不需要开发者设置，这个接口提供了另外一种从 app 层设置公众服务账号信息的方式 设置后，当 sdk 界面展示用户信息时，会回调 getPublicServiceProfile 使用者只需要根据对应的publicServiceType, publicServiceId 提供对应的公众服务账号信息。 如果需要异步从服务器获取公众服务账号信息，使用者可以在此方法中发起异步请求，然后返回 null 信息。 在异步请求结果返回后，根据返回的结果调用 refreshPublicServiceProfile 刷新公众号信息。
    `static String` | `getVersion()` |
    `void` | `addToBlacklist(String userId, OperationCallback callback)` | 将某个用户加到黑名单中。 当你把对方加入黑名单后，对方再发消息时，就会提示“已被加入黑名单，消息发送失败”。 但你依然可以发消息个对方。
    `void` | `addUnReadMessageCountChangedObserver(IUnReadMessageObserver observer, Array<ConversationType> conversationTypes)` | 设置未读消息数变化监听器。 注意:如果是在 activity 中设置,那么要在 activity 销毁时, 调用 removeObserver 否则会造成内存泄漏。
    `void` | `cancelDownloadMediaMessage(Message message, OperationCallback callback)` | 取消下载多媒体文件。
    `void` | `cancelSendMediaMessage(Message message, OperationCallback callback)` | 取消发送多媒体文件。
    `void` | `clearConversations(ResultCallback callback, Array<ConversationType> conversationTypes)` | 清空所有会话及会话消息，回调方式通知是否清空成功。
    `void` | `)>clearMessages(ConversationType conversationType, String targetId, ResultCallback<Boolean> callback)` | 根据会话类型，清空某一会话的所有聊天消息记录,回调方式获取清空是否成功。
    `void` | `)>clearMessagesUnreadStatus(ConversationType conversationType, String targetId, ResultCallback<Boolean> callback)` | 根据会话类型，清除目标 Id 的消息未读状态，回调方式获取清除是否成功。
    `void` | `)>clearTextMessageDraft(ConversationType conversationType, String targetId, ResultCallback<Boolean> callback)` | 清除某一会话的文字消息草稿，回调方式获取清除是否成功。
    `void` | `)>insertIncomingMessage(ConversationType type, String targetId, String senderUserId, ReceivedStatus receivedStatus, MessageContent content, long sentTime, ResultCallback<Message> callback)` | 向本地会话中插入一条消息，方向为接收。这条消息只是插入本地会话，不会实际发送给服务器和对方。 插入消息需为入库消息，即 ISPERSISTED，否者会回调 PARAMETER_ERROR
    `void` | `)>insertIncomingMessage(ConversationType type, String targetId, String senderUserId, ReceivedStatus receivedStatus, MessageContent content, ResultCallback<Message> callback)` | 向本地会话中插入一条消息，方向为接收。这条消息只是插入本地会话，不会实际发送给服务器和对方。 插入消息需为入库消息，即 ISPERSISTED，否者会回调 PARAMETER_ERROR
    `void` | `)>insertOutgoingMessage(ConversationType type, String targetId, SentStatus sentStatus, MessageContent content, ResultCallback<Message> callback)` | 向本地会话中插入一条消息，方向为发送。这条消息只是插入本地会话，不会实际发送给服务器和对方。 插入消息需为入库消息，即 ISPERSISTED，否者会回调 PARAMETER_ERROR
    `void` | `)>insertOutgoingMessage(ConversationType type, String targetId, SentStatus sentStatus, MessageContent content, long sentTime, ResultCallback<Message> callback)` | 向本地会话中插入一条消息，方向为发送。这条消息只是插入本地会话，不会实际发送给服务器和对方。 插入消息需为入库消息，即 ISPERSISTED，否者会回调 PARAMETER_ERROR
    `void` | `joinChatRoom(String chatroomId, int defMessageCount, OperationCallback callback)` | 加入聊天室。 如果聊天室不存在，sdk 会创建聊天室并加入，如果已存在，则直接加入 加入聊天室时，可以选择拉取聊天室消息数目。
    `void` | `joinExistChatRoom(String chatroomId, int defMessageCount, OperationCallback callback)` | 加入已存在的聊天室。 如果聊天室不存在，则加入失败 加入聊天室时，可以选择拉取聊天室消息数目。
    `void` | `logout()` | 注销当前登录，执行该方法后不会再收到 push 消息。
    `void` | `pauseDownloadMediaMessage(Message message, OperationCallback callback)` | 暂停下载多媒体文件
    `void` | `quitChatRoom(String chatroomId, OperationCallback callback)` | 退出聊天室。
    `void` | `recallMessage(Message message, String pushContent)` | 撤回消息
    `void` | `refreshGroupUserInfoCache(GroupUserInfo groupUserInfo)` | 刷新、更改群组用户缓存数据。
    `void` | `refreshPublicServiceProfile(PublicServiceProfile publicServiceProfile)` | 刷新公众服务账号缓存数据。
    `void` | `)>deleteMessages(ConversationType conversationType, String targetId, ResultCallback<Boolean> callback)` | 清除指定会话的消息。 此接口会删除指定会话中数据库的所有消息，同时，会清理数据库空间。 如果数据库特别大，超过几百 M，调用该接口会有少许耗时。
    `void` | `)>deleteMessages(ConversationType conversationType, String targetId, Array<int> messageIds, ResultCallback<Boolean> callback)` | 删除指定的一条或者一组消息，回调方式获取是否删除成功。
    `void` | `deleteRemoteMessages(ConversationType conversationType, String targetId, Array<Message> messages, OperationCallback callback)` | 删除指定的一条或者一组消息。会同时删除本地和远端消息。 请注意，此方法会删除远端消息，请慎重使用
    `void` | `disconnect()` | 断开连接(断开后继续接收 Push 消息)。
    `void` | `downloadMedia(ConversationType conversationType, String targetId, MediaType mediaType, String imageUrl, DownloadMediaCallback callback)` | 下载文件。 用来获取媒体原文件时调用。如果本地缓存中包含此文件，则从本地缓存中直接获取，否则将从服务器端下载。
    `void` | `downloadMediaFile(String uid, String fileUrl, String fileName, String path, IDownloadMediaFileCallback callback)` | 下载文件 支持断点续传
    `void` | `downloadMediaMessage(Message message, IDownloadMediaMessageCallback callback)` | 下载文件。和downloadMedia的区别是，该方法支持取消操作。 用来获取媒体原文件时调用。如果本地缓存中包含此文件，则从本地缓存中直接获取，否则将从服务器端下载。
    `void` | `enableNewComingMessageIcon(boolean state)` | 设置会话界面未读新消息是否展示 注:未读新消息大于1条即展示 目前仅支持单群聊
    `void` | `enableUnreadMessageIcon(boolean state)` | 设置会话界面历史消息是否展示 注:历史消息大于10条即展示 目前仅支持单群聊
    `void` | `)>setConversationNotificationStatus(ConversationType conversationType, String targetId, ConversationNotificationStatus notificationStatus, ResultCallback<ConversationNotificationStatus> callback)` | 设置会话消息提醒状态。
    `void` | `)>setConversationToTop(ConversationType type, String id, boolean isTop, boolean needCreate, ResultCallback<Boolean> callback)` | 设置某一会话为置顶或者取消置顶，回调方式获取设置是否成功。
    `void` | `startPrivateChat(Context context, String targetUserId, String title)` | 启动单聊界面。
    `void` | `startGroupChat(Context context, String targetGroupId, String title)` | 启动群组聊天界面。
    `void` | `startConversation(Context context, ConversationType conversationType, String targetId, String title)` | 启动会话界面。
    `void` | `startConversation(Context context, ConversationIdentifier conversationIdentifier, String title)` | 启动会话界面。
    `void` | `startConversation(Context context, ConversationType conversationType, String targetId, String title, long fixedMsgSentTime)` | 启动会话界面，并跳转到指定的消息位置 使用时，可以传入多种会话类型 Conversation.
    `void` | `startConversation(Context context, ConversationIdentifier conversationIdentifier, String title, long fixedMsgSentTime)` | 启动会话界面，并跳转到指定的消息位置 使用时，可以传入多种会话类型 Conversation.
    `void` | `)>getConversation(ConversationType type, String targetId, ResultCallback<Conversation> callback)` | 根据不同会话类型的目标Id，回调方式获取某一会话信息。
    `void` | `>)>getConversationList(ResultCallback<List<Conversation>> callback)` | 获取会话列表。
    `void` | `>,kotlin.Array)>getConversationList(ResultCallback<List<Conversation>> callback, Array<ConversationType> types)` | 根据会话类型，回调方式获取会话列表。
    `void` | `)>getConversationNotificationStatus(ConversationType conversationType, String targetId, ResultCallback<ConversationNotificationStatus> callback)` | 获取会话消息提醒状态。
    `void` | `getBlacklist(GetBlacklistCallback callback)` | 获取当前用户的黑名单列表。
    `void` | `)>getBlacklistStatus(String userId, ResultCallback<BlacklistStatus> callback)` | 获取某用户是否在黑名单中。
    `ConnectionStatus` | `getCurrentConnectionStatus()` | 获取连接状态。
    `long` | `getDeltaTime()` | 获取本地时间与服务器时间的差值。 消息发送成功后，sdk 会与服务器同步时间，消息所在数据库中存储的时间就是服务器时间。
    `void` | `>)>getHistoryMessages(ConversationType conversationType, String targetId, int oldestMessageId, int count, ResultCallback<List<Message>> callback)` | 根据会话类型的目标 Id，回调方式获取N条历史消息记录。
    `void` | `>)>getHistoryMessages(ConversationType conversationType, String targetId, String objectName, int oldestMessageId, int count, ResultCallback<List<Message>> callback)` | 根据会话类型的目标 Id，回调方式获取某消息类型标识的N条历史消息记录。
    `void` | `getMessages(ConversationType conversationType, String targetId, HistoryMessageOption historyMsgOption, IGetMessageCallback callback)` | 获取指定会话历史消息。 此方法先从本地获取历史消息，本地有缺失的情况下会从服务端同步缺失的部分；从服务端同步失败的时候会返回非 0 的 errorCode，同时把本地能取到的消息回调上去。 必须开通历史消息云存储功能。
    `void` | `getMessages(ConversationIdentifier conversationIdentifier, HistoryMessageOption historyMsgOption, IGetMessageCallback callback)` | 获取指定会话历史消息。 此方法先从本地获取历史消息，本地有缺失的情况下会从服务端同步缺失的部分；从服务端同步失败的时候会返回非 0 的 errorCode，同时把本地能取到的消息回调上去。 必须开通历史消息云存储功能。
    `void` | `getMessages(ConversationIdentifier conversationIdentifier, HistoryMessageOption historyMsgOption, IGetMessageCallbackEx callback)` | 获取指定会话历史消息。 此方法先从本地获取历史消息，本地有缺失的情况下会从服务端同步缺失的部分；从服务端同步失败的时候会返回非 0 的 errorCode，同时把本地能取到的消息回调上去。 必须开通历史消息云存储功能。
    `void` | `>)>getLatestMessages(ConversationType conversationType, String targetId, int count, ResultCallback<List<Message>> callback)` | 根据会话类型的目标 Id，回调方式获取最新的 N 条消息记录。
    `void` | `)>getPublicServiceList(ResultCallback<PublicServiceProfileList> callback)` | 获取己关注公共账号列表。
    `void` | `)>getPublicServiceProfile(PublicServiceType publicServiceType, String publicServiceId, ResultCallback<PublicServiceProfile> callback)` | 获取公众服务信息。
    `void` | `>)>getRemoteHistoryMessages(ConversationType conversationType, String targetId, long dataTime, int count, ResultCallback<List<Message>> callback)` | 根据会话类型和目标 Id，获取 N 条远端历史消息记录。 该方法只支持拉取指定时间之前的远端历史消息
    `void` | `>)>getRemoteHistoryMessages(ConversationType conversationType, String targetId, RemoteHistoryMsgOption remoteHistoryMsgOption, ResultCallback<List<Message>> callback)` | 根据会话类型和目标 Id，拉取某时间戳之前或之后的 N 条远端历史消息记录。 该方法支持拉取指定时间之前或之后的远端历史消息
    `void` | `)>getTextMessageDraft(ConversationType conversationType, String targetId, ResultCallback<String> callback)` | 根据会话类型，获取某一会话的文字消息草稿。
    `void` | `)>getUnreadCount(ConversationType conversationType, String targetId, ResultCallback<Integer> callback)` | 根据会话类型的目标 Id,回调方式获取来自某用户（某会话）的未读消息数。
    `void` | `,kotlin.Array)>getUnreadCount(ResultCallback<Integer> callback, Array<ConversationType> conversationTypes)` | 回调方式获取某会话类型的未读消息数。
    `void` | `)>getUnreadCount(Array<ConversationType> conversationTypes, boolean containBlocked, ResultCallback<Integer> callback)` | 回调方式获取某会话类型的未读消息数。可选择包含或者不包含消息免打扰的未读消息数。
    `void` | `)>getUnreadCount(Array<ConversationType> conversationTypes, ResultCallback<Integer> callback)` | 根据会话类型数组，回调方式获取某会话类型的未读消息数。
    `void` | `refreshUserInfoCache(UserInfo userInfo)` | 刷新用户缓存数据。
    `void` | `refreshGroupInfoCache(Group group)` | 刷新群组缓存数据。
    `void` | `registerConversationTemplate(BaseConversationProvider provider)` | 注册会话列表消息模板提供者。
    `void` | `setNotificationQuietHours(String startTime, int spanMinutes, OperationCallback callback)` | 设置会话通知免打扰时间。
    `void` | `getNotificationQuietHours(GetNotificationQuietHoursCallback callback)` | 获取会话通知免打扰时间。
    `void` | `removeNotificationQuietHours(OperationCallback callback)` | 移除会话通知免打扰时间。
    `void` | `removeUnReadMessageCountChangedObserver(IUnReadMessageObserver observer)` | 注销已注册的未读消息数变化监听器。
    `void` | `sendDirectionalMediaMessage(Message message, Array<String> userIds, String pushContent, String pushData, ISendMediaMessageCallback callback)` | 发送定向多媒体消息 向会话中特定的某些用户发送消息，会话中其他用户将不会收到此消息。 发送前构造 Message 消息实体，消息实体中的 content 必须为多媒体消息，如 ImageMessage或者其他继承自 MediaMessageContent 的消息
    `void` | `sendDirectionalMessage(ConversationType type, String targetId, MessageContent content, Array<String> userIds, String pushContent, String pushData, ISendMessageCallback callback)` | 发送定向消息。向会话中特定的某些用户发送消息，会话中其他用户将不会收到此消息。 通过 IRongCallback.
    `void` | `sendLocationMessage(Message message, String pushContent, String pushData, ISendMessageCallback sendMessageCallback)` | 发送地理位置消息。并同时更新界面。 发送前构造 Message 消息实体，消息实体中的 content 必须为 , 否则返回失败。 其中的缩略图地址 scheme 只支持 file:// 和 http:// 其他暂不支持。
    `void` | `sendMediaMessage(Message message, String pushContent, String pushData, ISendMediaMessageCallback callback)` | 发送多媒体消息 发送前构造 Message 消息实体，消息实体中的 content 必须为 FileMessage, 否则返回失败。
    `void` | `sendMediaMessage(Message message, String pushContent, String pushData, ISendMediaMessageCallbackWithUploader callback)` | 发送多媒体消息，可以使用该方法将多媒体文件上传到自己的服务器。 使用该方法在上传多媒体文件时，会回调 onAttached 此回调中会携带 IRongCallback.
    `void` | `sendMessage(ConversationType type, String targetId, MessageContent content, String pushContent, String pushData, ISendMessageCallback callback)` | 根据会话类型，发送消息。 通过 IRongCallback.
    `void` | `sendMessage(Message message, String pushContent, String pushData, ISendMessageCallback callback)` | 发送消息。 通过 IRongCallback.
    `void` | `sendMessage(Message message, String pushContent, String pushData, SendMessageOption option, ISendMessageCallback callback)` | 发送消息。 通过 IRongCallback.
    `void` | `setGroupMembersProvider(IGroupMembersProvider groupMembersProvider)` | 设置群组成员提供者。 '@' 功能和VoIP功能在选人界面,需要知道群组内成员信息,开发者需要设置该提供者。 开发者需要在回调中获取到群成员信息 并通过中的方法设置到 sdk 中
    `String` | `getCurrentUserId()` | 获取当前连接用户的信息。
    `void` | `setMaxVoiceDuration(int sec)` | 设置语音消息的最大长度
    `IMCenter.VoiceMessageType` | `getVoiceMessageType()` | 语音消息类型
    `void` | `setVoiceMessageType(IMCenter.VoiceMessageType voiceMessageType)` | 设置语音消息类型
    `int` | `getSamplingRate()` | 语音消息采样率
    `void` | `setSamplingRate(SamplingRate sampleRate)` | 设置语音消息采样率
    `void` | `setMessageInterceptor(MessageInterceptor interceptor)` | 设置消息拦截器。
    `void` | `)>setMessageSentStatus(Message message, ResultCallback<Boolean> callback)` | 根据消息 Message 设置消息状态，回调方式获取设置是否成功。
    `void` | `setPublicServiceMenuClickListener(IPublicServiceMenuClickListener menuClickListener)` | 设置公众服务菜单点击监听。 建议使用方法：在进入对应公众服务会话时，设置监听。当退出会话时，重置监听为 null，这样可以防止内存泄露。
    `void` | `setReadReceiptConversationTypeList(Array<ConversationType> types)` | 设置发送消息回执的会话类型。目前只支持私聊，群组和讨论组。 默认支持私聊。
    `void` | `setCurrentUserInfo(UserInfo userInfo)` | 设置当前用户信息。 如果开发者没有实现用户信息提供者，而是使用消息携带用户信息，需要使用这个方法设置当前用户的信息， 然后在init之后调用getInstance.
    `void` | `setMessageAttachedUserInfo(boolean state)` | 设置消息体内是否携带用户信息。
    `void` | `startChatRoomChat(Context context, String chatRoomId, boolean createIfNotExist)` | 启动聊天室会话。 设置参数 createIfNotExist 为 true，对应到 kit 中调用的接口是 joinChatRoom.
    `void` | `startConversation(Context context, ConversationType conversationType, String targetId, Bundle bundle)` | 启动会话界面。 使用时，可以传入多种会话类型 Conversation.
    `void` | `startCustomerServiceChat(Context context, String customerServiceId, String title, CSCustomServiceInfo customServiceInfo)` | 启动客户服聊天界面。
    `void` | `startSubConversationList(Context context, ConversationType conversationType)` | 启动聚合后的某类型的会话列表。 例如：如果设置了单聊会话为聚合，则通过该方法可以打开包含所有的单聊会话的列表。
    `void` | `)>setMessageReceivedStatus(int messageId, ConversationType conversationType, String targetId, ReceivedStatus receivedStatus, ResultCallback<Boolean> callback)` | 设置消息接收状态

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

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

- - ### Constructor Detail

  - ### Method Detail

    - #### getInstance

           static RongIM getInstance()

    - #### init

           static void init(Application application, String appKey)

      初始化 SDK，在整个应用程序全局只需要调用一次, 建议在 Application 继承类中调用。 调用此接口传入 AppKey 与在 AndroidManifest.xml 里写入 RONG_CLOUD_APP_KEY 是同样效果，二选一即可。

      Parameters:
        `application` - 应用
        `appKey` - 融云注册应用的AppKey。

    - #### init

           static void init(Application application, String appKey, boolean enablePush)

      初始化 SDK，在整个应用程序全局只需要调用一次, 建议在 Application 继承类中调用。 调用此接口传入 AppKey 与在 AndroidManifest.xml 里写入 RONG_CLOUD_APP_KEY 是同样效果，二选一即可。

      Parameters:
        `application` - 应用
        `appKey` - 融云注册应用的AppKey。
        `enablePush` - 是否使用推送功能。false 代表不使用推送相关功能, SDK 里将不会携带推送相关文件。

    - #### init

           static void init(Application application, String appKey, boolean enablePush, Boolean isMainProcess)

      初始化 SDK，在整个应用程序全局只需要调用一次, 建议在 Application 继承类中调用。 调用此接口传入 AppKey 与在 AndroidManifest.xml 里写入 RONG_CLOUD_APP_KEY 是同样效果，二选一即可。

      Parameters:
        `application` - 应用
        `appKey` - 融云注册应用的AppKey。
        `enablePush` - 是否使用推送功能。false 代表不使用推送相关功能, SDK 里将不会携带推送相关文件。
        `isMainProcess` - 是否为主进程。如果为null，则代表由SDK判断进程

    - #### init

           static void init(Application application, String appKey, InitOption option)

      初始化 SDK，在整个应用程序全局只需要调用一次, 建议在 Application 继承类中调用。 调用此接口传入 AppKey 与在 AndroidManifest.xml 里写入 RONG_CLOUD_APP_KEY 是同样效果，二选一即可。

      Parameters:
        `application` - 应用
        `appKey` - 融云注册应用的AppKey。
        `option` - 初始化所需要的配置信息，详情可参考 InitOption
      Since:

        5.4.5

    - #### connect

           static void connect(String token, ConnectCallback connectCallback)

      连接服务器，在整个应用程序全局，只需要调用一次。

      调用该接口，SDK 会在连接失败之后尝试重连，将出现以下两种情况： 第一、连接成功，回调 onSuccess(userId)。 第二、出现 SDK 无法处理的错误，回调 onError(errorCode)（如 token 非法），并不再重连

      连接成功后，SDK 将接管所有的重连处理。当因为网络原因断线的情况下，SDK 会不停重连直到连接成功为止，不需要您做额外的连接操作。

      Parameters:
        `token` - 从服务端获取的 用户身份令牌（ Token）。
        `connectCallback` - 连接服务器的回调扩展类，新增打开数据库的回调，用户可以在此回调中执行拉取会话列表操作。 该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### connect

           static void connect(String token, int timeLimit, ConnectCallback connectCallback)

      连接服务器，在整个应用程序全局，只需要调用一次。

      调用该接口，SDK 会在 timeLimit 秒内尝试重连，直到出现下面三种情况之一： 第一、连接成功，回调 onSuccess(userId)。 第二、超时，回调 onError(RC_CONNECT_TIMEOUT)，并不再重连。 第三、出现 SDK 无法处理的错误，回调 onError(errorCode)（如 token 非法），并不再重连。 连接成功后，SDK 将接管所有的重连处理。当因为网络原因断线的情况下，SDK 会不停重连直到连接成功为止，不需要您做额外的连接操作。

      Parameters:
        `token` - 从服务端获取的 用户身份令牌（ Token）。
        `timeLimit` - 连接超时时间，单位：秒。`timeLimit <= 0`，则 IM 将一直连接，直到连接成功或者无法连接（如 `token` 非法） `timeLimit > 0` ,则 IM 将最多连接 timeLimit 秒： 如果在 timeLimit 秒内连接成功，后面再发生了网络变化或前后台切换，SDK 会自动重连； 如果在 timeLimit 秒无法连接成功则不再进行重连，通过 onError 告知连接超时，您需要再自行调用 connect 接口
        `connectCallback` - 连接服务器的回调扩展类，新增打开数据库的回调，用户可以在此回调中执行拉取会话列表操作。 该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### registerMessageTemplate

           static void registerMessageTemplate(IMessageProvider provider)

      注册消息模板。

      Parameters:
        `provider` - 模板类型。

    - #### addOnReceiveMessageListener

           static void addOnReceiveMessageListener(OnReceiveMessageWrapperListener listener)

      设置接收消息的监听器（主线程回调listener）。

      所有接收到的消息、通知、状态都经由此处设置的监听器处理。包括私聊消息、讨论组消息、群组消息、聊天室消息以及各种状态。

      Parameters:
        `listener` - 接收消息的监听器。

    - #### removeOnReceiveMessageListener

           static void removeOnReceiveMessageListener(OnReceiveMessageWrapperListener listener)

      移除接收消息的监听器。

      Parameters:
        `listener` - 接收消息的监听器。

    - #### addAsyncOnReceiveMessageListener

           static void addAsyncOnReceiveMessageListener(OnReceiveMessageWrapperListener listener)

      设置接收消息的监听器（工作线程回调listener）。

      所有接收到的消息、通知、状态都经由此处设置的监听器处理。包括私聊消息、讨论组消息、群组消息、聊天室消息以及各种状态。

      Parameters:
        `listener` - 接收消息的监听器。

    - #### removeAsyncOnReceiveMessageListener

           static void removeAsyncOnReceiveMessageListener(OnReceiveMessageWrapperListener listener)

      移除接收消息的监听器（异步）。

      Parameters:
        `listener` - 接收消息的监听器。

    - #### setConnectionStatusListener

           static void setConnectionStatusListener(ConnectionStatusListener listener)

      设置连接状态变化的监听器。

      Parameters:
        `listener` - 连接状态变化的监听器。

    - #### setConversationClickListener

           static void setConversationClickListener(ConversationClickListener listener)

      设置会话界面操作的监听器。

      Parameters:
        `listener` - 会话界面操作的监听器。

    - #### setConversationListBehaviorListener

           static void setConversationListBehaviorListener(ConversationListBehaviorListener listener)

      设置会话列表界面操作的监听器。

      Parameters:
        `listener` - 会话列表界面操作的监听器。

    - #### setUserInfoProvider

           static void setUserInfoProvider(UserInfoProvider userInfoProvider, boolean isCacheUserInfo)

      设置用户信息的提供者，供 RongIM 调用获取用户名称和头像信息。 设置后，当 sdk 界面展示用户信息时，会回调 getUserInfo 使用者只需要根据对应的 userId 提供对应的用户信息。 如果需要异步从服务器获取用户信息，使用者可以在此方法中发起异步请求，然后返回 null 信息。 在异步请求结果返回后，根据返回的结果调用 refreshUserInfoCache 刷新用户信息。

      Parameters:
        `userInfoProvider` - 用户信息提供者 UserDataProvider.
        `isCacheUserInfo` - 设置是否由 IMKit 来缓存用户信息。如果 App 提供的 UserInfoProvider。 每次都需要通过网络请求用户数据，而不是将用户数据缓存到本地，会影响用户信息的加载速度；此时最好将本参数设置为 true，由 IMKit 来缓存用户信息。

    - #### setGroupInfoProvider

           static void setGroupInfoProvider(GroupInfoProvider groupInfoProvider, boolean isCacheGroupInfo)

      设置群组信息的提供者。

      设置后，当 sdk 界面展示群组信息时，会回调 getGroupInfo 使用者只需要根据对应的 groupId 提供对应的群组信息。 如果需要异步从服务器获取群组信息，使用者可以在此方法中发起异步请求，然后返回 null 信息。 在异步请求结果返回后，根据返回的结果调用 refreshGroupInfoCache 刷新信息。

      Parameters:
        `groupInfoProvider` - 群组信息提供者。
        `isCacheGroupInfo` - 设置是否由 IMKit 来缓存用户信息。如果 App 提供的 GroupInfoProvider。 每次都需要通过网络请求群组数据，而不是将群组数据缓存到本地，会影响群组信息的加载速度；此时最好将本参数设置为 true，由 IMKit 来缓存群组信息。

    - #### setGroupUserInfoProvider

           static void setGroupUserInfoProvider(GroupUserInfoProvider groupUserInfoProvider, boolean isCacheGroupUserInfo)

      设置GroupUserInfo提供者，供RongIM 调用获取GroupUserInfo

      可以使用此方法，修改群组中用户昵称

      设置后，当 sdk 界面展示用户信息时，会回调 getGroupUserInfo 使用者只需要根据对应的 groupId, userId 提供对应的用户信息 GroupUserInfo。 如果需要异步从服务器获取用户信息，使用者可以在此方法中发起异步请求，然后返回 null 信息。 在异步请求结果返回后，根据返回的结果调用 refreshGroupUserInfoCache 刷新信息。

      Parameters:
        `groupUserInfoProvider` - 群组用户信息提供者。
        `isCacheGroupUserInfo` - 设置是否由 IMKit 来缓存 GroupUserInfo。如果 App 提供的 GroupUserInfoProvider。 每次都需要通过网络请求数据，而不是将数据缓存到本地，会影响信息的加载速度；此时最好将本参数设置为 true，由 IMKit 来缓存信息。

    - #### setLocationProvider

          @Deprecated() static void setLocationProvider(LocationProvider locationProvider)

      设置位置信息的提供者。

      Parameters:
        `locationProvider` - 位置信息提供者。

    - #### setPublicServiceBehaviorListener

           static void setPublicServiceBehaviorListener(PublicServiceBehaviorListener listener)

      设置公众号界面操作的监听器。

      Parameters:
        `listener` - 会话公众号界面操作的监听器。

    - #### setPublicServiceProfileProvider

           static void setPublicServiceProfileProvider(PublicServiceProfileProvider publicServiceProfileProvider)

      设置公众服务账号信息的提供者，供 RongIM 调用获公众服务账号名称，头像信息和公众服务号菜单。

      目前 sdk 默认的公众号服务不需要开发者设置，这个接口提供了另外一种从 app 层设置公众服务账号信息的方式 设置后，当 sdk 界面展示用户信息时，会回调 getPublicServiceProfile 使用者只需要根据对应的publicServiceType, publicServiceId 提供对应的公众服务账号信息。 如果需要异步从服务器获取公众服务账号信息，使用者可以在此方法中发起异步请求，然后返回 null 信息。 在异步请求结果返回后，根据返回的结果调用 refreshPublicServiceProfile 刷新公众号信息。

      Parameters:
        `publicServiceProfileProvider` - 公众服务账号信息的提供者 。

    - #### getVersion

           static String getVersion()

    - #### addToBlacklist

           void addToBlacklist(String userId, OperationCallback callback)

      将某个用户加到黑名单中。

      当你把对方加入黑名单后，对方再发消息时，就会提示“已被加入黑名单，消息发送失败”。 但你依然可以发消息个对方。

      Parameters:
        `userId` - 用户 Id。
        `callback` - 加到黑名单回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### addUnReadMessageCountChangedObserver

           void addUnReadMessageCountChangedObserver(IUnReadMessageObserver observer, Array<ConversationType> conversationTypes)

      设置未读消息数变化监听器。 注意:如果是在 activity 中设置,那么要在 activity 销毁时, 调用 removeObserver 否则会造成内存泄漏。

      Parameters:
        `observer` - 接收未读消息消息的监听器。
        `conversationTypes` - 接收未读消息的会话类型。

    - #### cancelDownloadMediaMessage

           void cancelDownloadMediaMessage(Message message, OperationCallback callback)

      取消下载多媒体文件。

      Parameters:
        `message` - 包含多媒体文件的消息，即MessageContent为 FileMessage, ImageMessage 等。
        `callback` - 取消下载多媒体文件时的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### cancelSendMediaMessage

           void cancelSendMediaMessage(Message message, OperationCallback callback)

      取消发送多媒体文件。

      Parameters:
        `message` - 包含多媒体文件的消息，即MessageContent为 FileMessage, ImageMessage 等。
        `callback` - 取消发送多媒体文件时的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### clearConversations

           void clearConversations(ResultCallback callback, Array<ConversationType> conversationTypes)

      清空所有会话及会话消息，回调方式通知是否清空成功。

      Parameters:
        `callback` - 是否清空成功的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。
        `conversationTypes` - 会话类型。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### clearMessages

           void )>clearMessages(ConversationType conversationType, String targetId, ResultCallback<Boolean> callback)

      根据会话类型，清空某一会话的所有聊天消息记录,回调方式获取清空是否成功。

      Parameters:
        `conversationType` - 会话类型。不支持传入 ConversationType.
        `targetId` - 目标 Id。根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id。
        `callback` - 清空是否成功的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。 该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### clearMessagesUnreadStatus

           void )>clearMessagesUnreadStatus(ConversationType conversationType, String targetId, ResultCallback<Boolean> callback)

      根据会话类型，清除目标 Id 的消息未读状态，回调方式获取清除是否成功。

      Parameters:
        `conversationType` - 会话类型。不支持传入 ConversationType.
        `targetId` - 目标 Id。根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id。
        `callback` - 清除是否成功的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### clearTextMessageDraft

           void )>clearTextMessageDraft(ConversationType conversationType, String targetId, ResultCallback<Boolean> callback)

      清除某一会话的文字消息草稿，回调方式获取清除是否成功。

      Parameters:
        `conversationType` - 会话类型。
        `targetId` - 目标 Id。根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。
        `callback` - 是否清除成功的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### insertIncomingMessage

           void )>insertIncomingMessage(ConversationType type, String targetId, String senderUserId, ReceivedStatus receivedStatus, MessageContent content, long sentTime, ResultCallback<Message> callback)

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

      Parameters:
        `type` - 会话类型。
        `targetId` - 目标会话Id。比如私人会话时，是对方的id； 群组会话时，是群id; 讨论组会话时，则为该讨论,组的id.
        `senderUserId` - 发送方 Id
        `receivedStatus` - 接收状态 @see Message.
        `content` - 消息内容。如TextMessageImageMessage等。
        `sentTime` - 插入消息所要模拟的消息发送时间
        `callback` - 获得消息发送实体的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### insertIncomingMessage

           void )>insertIncomingMessage(ConversationType type, String targetId, String senderUserId, ReceivedStatus receivedStatus, MessageContent content, ResultCallback<Message> callback)

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

      Parameters:
        `type` - 会话类型。
        `targetId` - 目标会话Id。比如私人会话时，是对方的id； 群组会话时，是群id; 讨论组会话时，则为该讨论,组的id.
        `senderUserId` - 发送方 Id
        `receivedStatus` - 接收状态 @see Message.
        `content` - 消息内容。如TextMessageImageMessage等。
        `callback` - 获得消息发送实体的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### insertOutgoingMessage

           void )>insertOutgoingMessage(ConversationType type, String targetId, SentStatus sentStatus, MessageContent content, ResultCallback<Message> callback)

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

      Parameters:
        `type` - 会话类型。
        `targetId` - 目标会话Id。比如私人会话时，是对方的id； 群组会话时，是群id; 讨论组会话时，则为该讨论,组的id.
        `sentStatus` - 接收状态 @see Message.
        `content` - 消息内容。如TextMessageImageMessage等。
        `callback` - 获得消息发送实体的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### insertOutgoingMessage

           void )>insertOutgoingMessage(ConversationType type, String targetId, SentStatus sentStatus, MessageContent content, long sentTime, ResultCallback<Message> callback)

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

      Parameters:
        `type` - 会话类型。
        `targetId` - 目标会话Id。比如私人会话时，是对方的id； 群组会话时，是群id; 讨论组会话时，则为该讨论,组的id.
        `sentStatus` - 发送状态 @see Message.
        `content` - 消息内容。如TextMessageImageMessage等。
        `sentTime` - 插入消息所要模拟的发送时间。
        `callback` - 获得消息发送实体的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### joinChatRoom

           void joinChatRoom(String chatroomId, int defMessageCount, OperationCallback callback)

      加入聊天室。

      如果聊天室不存在，sdk 会创建聊天室并加入，如果已存在，则直接加入

      加入聊天室时，可以选择拉取聊天室消息数目。

      Parameters:
        `chatroomId` - 聊天室 Id。
        `defMessageCount` - 进入聊天室拉取消息数目，-1 时不拉取任何消息，0 时拉取 10 条消息，最多只能拉取 50 条。（加入聊天室时会传本地最后一条消息的时间戳，拉取的是这个时间戳之后的消息。比如：这个时间戳之后有3条消息，defMessageCount传10，也只能拉到3条消息。）
        `callback` - 状态回调。

    - #### joinExistChatRoom

           void joinExistChatRoom(String chatroomId, int defMessageCount, OperationCallback callback)

      加入已存在的聊天室。

      如果聊天室不存在，则加入失败

      加入聊天室时，可以选择拉取聊天室消息数目。

      Parameters:
        `chatroomId` - 聊天室 Id。
        `defMessageCount` - 进入聊天室拉取消息数目，-1 时不拉取任何消息，0 时拉取 10 条消息，最多只能拉取 40 条。
        `callback` - 状态回调。
      Since:

        5.3.1：加入聊天室后，断网重新加入聊天室默认获取聊天室消息条数，为主动加入时获取的历史消息条数。由于每次传入的条数固定, 可能会导致消息重复，App 需要做消息排重。

    - #### logout

           void logout()

      注销当前登录，执行该方法后不会再收到 push 消息。

    - #### pauseDownloadMediaMessage

           void pauseDownloadMediaMessage(Message message, OperationCallback callback)

      暂停下载多媒体文件

      Parameters:
        `message` - 包含多媒体文件的消息，即MessageContent为 FileMessage, ImageMessage 等。
        `callback` - 暂停下载多媒体文件时的回调

    - #### quitChatRoom

           void quitChatRoom(String chatroomId, OperationCallback callback)

      退出聊天室。

      Parameters:
        `chatroomId` - 聊天室 Id。
        `callback` - 状态回调。

    - #### recallMessage

           void recallMessage(Message message, String pushContent)

      撤回消息

      Parameters:
        `message` - 将被撤回的消息
        `pushContent` - 被撤回时，通知栏显示的信息

    - #### refreshGroupUserInfoCache

           void refreshGroupUserInfoCache(GroupUserInfo groupUserInfo)

      刷新、更改群组用户缓存数据。

      Parameters:
        `groupUserInfo` - 需要更新的群组用户缓存数据。

    - #### refreshPublicServiceProfile

           void refreshPublicServiceProfile(PublicServiceProfile publicServiceProfile)

      刷新公众服务账号缓存数据。

      Parameters:
        `publicServiceProfile` - 需要更新的公众服务账号缓存数据。

    - #### deleteMessages

           void )>deleteMessages(ConversationType conversationType, String targetId, ResultCallback<Boolean> callback)

      清除指定会话的消息。

      此接口会删除指定会话中数据库的所有消息，同时，会清理数据库空间。 如果数据库特别大，超过几百 M，调用该接口会有少许耗时。

      Parameters:
        `conversationType` - 要删除的消息 Id 数组。
        `targetId` - 目标 Id。根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id。
        `callback` - 是否删除成功的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### deleteMessages

           void )>deleteMessages(ConversationType conversationType, String targetId, Array<int> messageIds, ResultCallback<Boolean> callback)

      删除指定的一条或者一组消息，回调方式获取是否删除成功。

      Parameters:
        `messageIds` - 要删除的消息 Id 数组。
        `callback` - 是否删除成功的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### deleteRemoteMessages

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

      删除指定的一条或者一组消息。会同时删除本地和远端消息。

      请注意，此方法会删除远端消息，请慎重使用

      Parameters:
        `conversationType` - 会话类型。暂时不支持聊天室
        `targetId` - 目标 Id。根据不同的 conversationType，可能是用户 Id、客服 Id。
        `messages` - 要删除的消息数组, 数组大小不能超过100条。
        `callback` - 是否删除成功的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### disconnect

           void disconnect()

      断开连接(断开后继续接收 Push 消息)。

    - #### downloadMedia

           void downloadMedia(ConversationType conversationType, String targetId, MediaType mediaType, String imageUrl, DownloadMediaCallback callback)

      下载文件。

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

      Parameters:
        `conversationType` - 会话类型。
        `targetId` - 目标 Id。根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。
        `mediaType` - 文件类型。
        `imageUrl` - 文件的 URL 地址。
        `callback` - 下载文件的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### downloadMediaFile

           void downloadMediaFile(String uid, String fileUrl, String fileName, String path, IDownloadMediaFileCallback callback)

      下载文件 支持断点续传

      Parameters:
        `uid` - 文件唯一标识
        `fileUrl` - 文件下载地址
        `fileName` - 文件名
        `path` - 文件下载保存目录，如果是 targetVersion 29 为目标，由于访问权限原因，建议使用 context.
        `callback` - 回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### downloadMediaMessage

           void downloadMediaMessage(Message message, IDownloadMediaMessageCallback callback)

      下载文件。和downloadMedia的区别是，该方法支持取消操作。

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

      Parameters:
        `message` - 文件消息。
        `callback` - 下载文件的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### enableNewComingMessageIcon

           void enableNewComingMessageIcon(boolean state)

      设置会话界面未读新消息是否展示 注:未读新消息大于1条即展示 目前仅支持单群聊

      Parameters:
        `state` - true 展示，false 不展示。

    - #### enableUnreadMessageIcon

           void enableUnreadMessageIcon(boolean state)

      设置会话界面历史消息是否展示 注:历史消息大于10条即展示 目前仅支持单群聊

      Parameters:
        `state` - true 展示，false 不展示。

    - #### setConversationNotificationStatus

           void )>setConversationNotificationStatus(ConversationType conversationType, String targetId, ConversationNotificationStatus notificationStatus, ResultCallback<ConversationNotificationStatus> callback)

      设置会话消息提醒状态。

      Parameters:
        `conversationType` - 会话类型。
        `targetId` - 目标 Id。根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id。
        `notificationStatus` - 是否屏蔽。
        `callback` - 设置状态的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### setConversationToTop

           void )>setConversationToTop(ConversationType type, String id, boolean isTop, boolean needCreate, ResultCallback<Boolean> callback)

      设置某一会话为置顶或者取消置顶，回调方式获取设置是否成功。

      Parameters:
        `type` - 会话类型。
        `id` - 目标 Id。根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。
        `isTop` - 是否置顶。
        `needCreate` - 会话不存在时，是否创建会话。
        `callback` - 设置置顶或取消置顶是否成功的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### startPrivateChat

           void startPrivateChat(Context context, String targetUserId, String title)

      启动单聊界面。

      Parameters:
        `context` - 应用上下文。
        `targetUserId` - 要与之聊天的用户 Id。
        `title` - 聊天的标题。开发者需要在聊天界面获取该值, 再手动设置为聊天界面的标题。

    - #### startGroupChat

           void startGroupChat(Context context, String targetGroupId, String title)

      启动群组聊天界面。

      Parameters:
        `context` - 应用上下文。
        `targetGroupId` - 要聊天的群组 Id。
        `title` - 聊天的标题。开发者需要在聊天界面通过intent.getData().

    - #### startConversation

           void startConversation(Context context, ConversationType conversationType, String targetId, String title)

      启动会话界面。

      Parameters:
        `context` - 应用上下文。
        `conversationType` - 会话类型。
        `targetId` - 根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。
        `title` - 聊天的标题。开发者需要在聊天界面通过intent.getData().

    - #### startConversation

           void startConversation(Context context, ConversationIdentifier conversationIdentifier, String title)

      启动会话界面。

      Parameters:
        `context` - 应用上下文。
        `conversationIdentifier` - 会话标识。
        `title` - 聊天的标题。开发者需要在聊天界面通过intent.getData().

    - #### startConversation

           void startConversation(Context context, ConversationType conversationType, String targetId, String title, long fixedMsgSentTime)

      启动会话界面，并跳转到指定的消息位置

      使用时，可以传入多种会话类型 Conversation.ConversationType 对应不同的会话类型，开启不同的会话界面。 如果传入的是 CHATROOM，sdk 会默认调用 joinChatRoom 加入聊天室。

      Parameters:
        `context` - 应用上下文。
        `conversationType` - 会话类型。
        `targetId` - 根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。
        `title` - 聊天的标题。开发者需要在聊天界面通过intent.getData().
        `fixedMsgSentTime` - 需要定位的消息发送时间

    - #### startConversation

           void startConversation(Context context, ConversationIdentifier conversationIdentifier, String title, long fixedMsgSentTime)

      启动会话界面，并跳转到指定的消息位置

      使用时，可以传入多种会话类型 Conversation.ConversationType 对应不同的会话类型，开启不同的会话界面。 如果传入的是 CHATROOM，sdk 会默认调用 joinChatRoom 加入聊天室。

      Parameters:
        `context` - 应用上下文。
        `conversationIdentifier` - 会话标识。
        `title` - 聊天的标题。开发者需要在聊天界面通过intent.getData().
        `fixedMsgSentTime` - 需要定位的消息发送时间

    - #### getConversation

           void )>getConversation(ConversationType type, String targetId, ResultCallback<Conversation> callback)

      根据不同会话类型的目标Id，回调方式获取某一会话信息。

      Parameters:
        `type` - 会话类型。
        `targetId` - 目标 Id。根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。
        `callback` - 获取会话信息的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### getConversationList

           void >)>getConversationList(ResultCallback<List<Conversation>> callback)

      获取会话列表。

      Parameters:
        `callback` - 会话列表数据回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### getConversationList

           void >,kotlin.Array)>getConversationList(ResultCallback<List<Conversation>> callback, Array<ConversationType> types)

      根据会话类型，回调方式获取会话列表。

      Parameters:
        `callback` - 获取会话列表的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。
        `types` - 会话类型。

    - #### getConversationNotificationStatus

           void )>getConversationNotificationStatus(ConversationType conversationType, String targetId, ResultCallback<ConversationNotificationStatus> callback)

      获取会话消息提醒状态。

      Parameters:
        `conversationType` - 会话类型。
        `targetId` - 目标 Id。根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id。
        `callback` - 获取状态的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### getBlacklist

           void getBlacklist(GetBlacklistCallback callback)

      获取当前用户的黑名单列表。

      Parameters:
        `callback` - 获取黑名单回调。

    - #### getBlacklistStatus

           void )>getBlacklistStatus(String userId, ResultCallback<BlacklistStatus> callback)

      获取某用户是否在黑名单中。

      Parameters:
        `userId` - 用户 Id。
        `callback` - 获取用户是否在黑名单回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### getCurrentConnectionStatus

           ConnectionStatus getCurrentConnectionStatus()

      获取连接状态。

      Returns:

        连接状态枚举。

    - #### getDeltaTime

           long getDeltaTime()

      获取本地时间与服务器时间的差值。 消息发送成功后，sdk 会与服务器同步时间，消息所在数据库中存储的时间就是服务器时间。

      Returns:

        本地时间与服务器时间的差值。

    - #### getHistoryMessages

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

      根据会话类型的目标 Id，回调方式获取N条历史消息记录。

      Parameters:
        `conversationType` - 会话类型。不支持传入 ConversationType.
        `targetId` - 目标 Id。根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id。
        `oldestMessageId` - 最后一条消息的 Id，获取此消息之前的 count 条消息，没有消息第一次调用应设置为:-1。
        `count` - 要获取的消息数量。
        `callback` - 获取历史消息记录的回调，按照时间顺序从新到旧排列。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### getHistoryMessages

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

      根据会话类型的目标 Id，回调方式获取某消息类型标识的N条历史消息记录。

      Parameters:
        `conversationType` - 会话类型。不支持传入 ConversationType.
        `targetId` - 目标 Id。根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id 。
        `objectName` - 消息类型标识。
        `oldestMessageId` - 最后一条消息的 Id，获取此消息之前的 count 条消息,没有消息第一次调用应设置为:-1。
        `count` - 要获取的消息数量。
        `callback` - 获取历史消息记录的回调，按照时间顺序从新到旧排列。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### getMessages

          @Deprecated() void getMessages(ConversationType conversationType, String targetId, HistoryMessageOption historyMsgOption, IGetMessageCallback callback)

      获取指定会话历史消息。

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

      Parameters:
        `conversationType` - 会话类型 io.rong.imlib.model.Conversation.
        `targetId` - 会话 id。
        `historyMsgOption` - HistoryMessageOption
        `callback` - 获取消息的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### getMessages

          @Deprecated() void getMessages(ConversationIdentifier conversationIdentifier, HistoryMessageOption historyMsgOption, IGetMessageCallback callback)

      获取指定会话历史消息。

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

      Parameters:
        `conversationIdentifier` - 会话标识
        `historyMsgOption` - HistoryMessageOption
        `callback` - 获取消息的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### getMessages

           void getMessages(ConversationIdentifier conversationIdentifier, HistoryMessageOption historyMsgOption, IGetMessageCallbackEx callback)

      获取指定会话历史消息。

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

      Parameters:
        `conversationIdentifier` - 会话标识
        `historyMsgOption` - HistoryMessageOption
        `callback` - 获取消息的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。
      Since:

        5.8.2

    - #### getLatestMessages

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

      根据会话类型的目标 Id，回调方式获取最新的 N 条消息记录。

      Parameters:
        `conversationType` - 会话类型。
        `targetId` - 目标 Id。根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。
        `count` - 要获取的消息数量。
        `callback` - 获取最新消息记录的回调，按照时间顺序从新到旧排列。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### getPublicServiceList

           void )>getPublicServiceList(ResultCallback<PublicServiceProfileList> callback)

      获取己关注公共账号列表。

      Parameters:
        `callback` - 获取己关注公共账号列表回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### getPublicServiceProfile

           void )>getPublicServiceProfile(PublicServiceType publicServiceType, String publicServiceId, ResultCallback<PublicServiceProfile> callback)

      获取公众服务信息。

      Parameters:
        `publicServiceType` - 会话类型，APP_PUBLIC_SERVICE 或者 PUBLIC_SERVICE。
        `publicServiceId` - 公众服务 Id。
        `callback` - 获取公众号信息回调。

    - #### getRemoteHistoryMessages

           void >)>getRemoteHistoryMessages(ConversationType conversationType, String targetId, long dataTime, int count, ResultCallback<List<Message>> callback)

      根据会话类型和目标 Id，获取 N 条远端历史消息记录。

      该方法只支持拉取指定时间之前的远端历史消息

      Parameters:
        `conversationType` - 会话类型。不支持传入 ConversationType.
        `targetId` - 目标 Id。根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id。
        `dataTime` - 从该时间点开始获取消息。即：消息中的 sendTime；第一次可传 0，获取最新 count 条。
        `count` - 要获取的消息数量，最多 20 条。
        `callback` - 获取历史消息记录的回调，按照时间顺序从新到旧排列。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### getRemoteHistoryMessages

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

      根据会话类型和目标 Id，拉取某时间戳之前或之后的 N 条远端历史消息记录。

      该方法支持拉取指定时间之前或之后的远端历史消息

      Parameters:
        `conversationType` - 会话类型。不支持传入 ConversationType.
        `targetId` - 目标 Id。根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id。
        `remoteHistoryMsgOption` - RemoteHistoryMsgOption
        `callback` - 获取历史消息记录的回调，按照时间顺序从新到旧排列。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### getTextMessageDraft

           void )>getTextMessageDraft(ConversationType conversationType, String targetId, ResultCallback<String> callback)

      根据会话类型，获取某一会话的文字消息草稿。

      Parameters:
        `conversationType` - 会话类型。
        `targetId` - 目标 Id。根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。
        `callback` - 获取草稿文字内容的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### getUnreadCount

           void )>getUnreadCount(ConversationType conversationType, String targetId, ResultCallback<Integer> callback)

      根据会话类型的目标 Id,回调方式获取来自某用户（某会话）的未读消息数。

      Parameters:
        `conversationType` - 会话类型。
        `targetId` - 目标 Id。根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id。
        `callback` - 未读消息数的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### getUnreadCount

           void ,kotlin.Array)>getUnreadCount(ResultCallback<Integer> callback, Array<ConversationType> conversationTypes)

      回调方式获取某会话类型的未读消息数。

      Parameters:
        `callback` - 未读消息数的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。
        `conversationTypes` - 会话类型。

    - #### getUnreadCount

           void )>getUnreadCount(Array<ConversationType> conversationTypes, boolean containBlocked, ResultCallback<Integer> callback)

      回调方式获取某会话类型的未读消息数。可选择包含或者不包含消息免打扰的未读消息数。

      Parameters:
        `conversationTypes` - 会话类型。
        `containBlocked` - 是否包含消息免打扰的未读消息数，true 包含， false 不包含
        `callback` - 未读消息数的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### getUnreadCount

           void )>getUnreadCount(Array<ConversationType> conversationTypes, ResultCallback<Integer> callback)

      根据会话类型数组，回调方式获取某会话类型的未读消息数。

      Parameters:
        `conversationTypes` - 会话类型。
        `callback` - 未读消息数的回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### refreshUserInfoCache

           void refreshUserInfoCache(UserInfo userInfo)

      刷新用户缓存数据。

      Parameters:
        `userInfo` - 需要更新的用户缓存数据。

    - #### refreshGroupInfoCache

           void refreshGroupInfoCache(Group group)

      刷新群组缓存数据。

      Parameters:
        `group` - 需要更新的群组缓存数据。

    - #### registerConversationTemplate

           void registerConversationTemplate(BaseConversationProvider provider)

      注册会话列表消息模板提供者。

      Parameters:
        `provider` - 会话列表模板提供者。

    - #### setNotificationQuietHours

           void setNotificationQuietHours(String startTime, int spanMinutes, OperationCallback callback)

      设置会话通知免打扰时间。

      Parameters:
        `startTime` - 起始时间 格式 HH:MM:SS。
        `spanMinutes` - 间隔分钟数大于 0 小于 1440。
        `callback` - 设置会话通知免打扰时间回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### getNotificationQuietHours

           void getNotificationQuietHours(GetNotificationQuietHoursCallback callback)

      获取会话通知免打扰时间。

      Parameters:
        `callback` - 获取会话通知免打扰时间回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### removeNotificationQuietHours

           void removeNotificationQuietHours(OperationCallback callback)

      移除会话通知免打扰时间。

      Parameters:
        `callback` - 移除会话通知免打扰时间回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### removeUnReadMessageCountChangedObserver

           void removeUnReadMessageCountChangedObserver(IUnReadMessageObserver observer)

      注销已注册的未读消息数变化监听器。

      Parameters:
        `observer` - 接收未读消息消息的监听器。

    - #### sendDirectionalMediaMessage

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

      发送定向多媒体消息 向会话中特定的某些用户发送消息，会话中其他用户将不会收到此消息。

      发送前构造 Message 消息实体，消息实体中的 content 必须为多媒体消息，如 ImageMessage

      或者其他继承自 MediaMessageContent 的消息

      Parameters:
        `message` - 发送消息的实体。
        `userIds` - 定向接收者 id 数组
        `pushContent` - 当下发 push 消息时，在通知栏里会显示这个字段。 发送文件消息时，此字段必须填写，否则会收不到 push 推送。
        `pushData` - push 附加信息。如果设置该字段，用户在收到 push 消息时，能通过 getPushData 方法获取。
        `callback` - 发送消息的回调 。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### sendDirectionalMessage

           void sendDirectionalMessage(ConversationType type, String targetId, MessageContent content, Array<String> userIds, String pushContent, String pushData, ISendMessageCallback callback)

      发送定向消息。向会话中特定的某些用户发送消息，会话中其他用户将不会收到此消息。 通过 IRongCallback.ISendMessageCallback 中的方法回调发送的消息状态及消息体。 此方法只能发送非多媒体消息，多媒体消息如ImageMessageFileMessage ，或者继承自的消息须调用 sendDirectionalMediaMessage。

      Parameters:
        `type` - 会话类型。
        `targetId` - 目标 Id。根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。
        `content` - 消息内容，例如 TextMessage
        `userIds` - 会话中将会接收到此消息的用户列表。
        `pushContent` - 当下发 push 消息时，在通知栏里会显示这个字段。 如果发送的是自定义消息，该字段必须填写，否则无法收到 push 消息。 如果发送 sdk 中默认的消息类型，例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg，则不需要填写，默认已经指定。
        `pushData` - push 附加信息。如果设置该字段，用户在收到 push 消息时，能通过 getPushData 方法获取。
        `callback` - 发送消息的回调，参考 。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### sendLocationMessage

           void sendLocationMessage(Message message, String pushContent, String pushData, ISendMessageCallback sendMessageCallback)

      发送地理位置消息。并同时更新界面。

      发送前构造 Message 消息实体，消息实体中的 content 必须为 , 否则返回失败。

      其中的缩略图地址 scheme 只支持 file:// 和 http:// 其他暂不支持。

      Parameters:
        `message` - 消息实体。
        `pushContent` - 当下发 push 消息时，在通知栏里会显示这个字段。 如果发送的是自定义消息，该字段必须填写，否则无法收到 push 消息。 如果发送 sdk 中默认的消息类型，例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg，则不需要填写，默认已经指定。
        `pushData` - push 附加信息。如果设置该字段，用户在收到 push 消息时，能通过 getPushData 方法获取。
        `sendMessageCallback` - 发送消息的回调，参考 。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### sendMediaMessage

           void sendMediaMessage(Message message, String pushContent, String pushData, ISendMediaMessageCallback callback)

      发送多媒体消息

      发送前构造 Message 消息实体，消息实体中的 content 必须为 FileMessage, 否则返回失败。

      Parameters:
        `message` - 发送消息的实体。
        `pushContent` - 当下发 push 消息时，在通知栏里会显示这个字段。 发送文件消息时，此字段必须填写，否则会收不到 push 推送。
        `pushData` - push 附加信息。如果设置该字段，用户在收到 push 消息时，能通过 getPushData 方法获取。
        `callback` - 发送消息的回调 。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### sendMediaMessage

           void sendMediaMessage(Message message, String pushContent, String pushData, ISendMediaMessageCallbackWithUploader callback)

      发送多媒体消息，可以使用该方法将多媒体文件上传到自己的服务器。 使用该方法在上传多媒体文件时，会回调 onAttached 此回调中会携带 IRongCallback.MediaMessageUploader 对象，使用者只需要调用此对象中的 update 更新进度 success 更新成功状态，并告知上传成功后的文件地址 error 更新失败状态

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

    - #### sendMessage

           void sendMessage(ConversationType type, String targetId, MessageContent content, String pushContent, String pushData, ISendMessageCallback callback)

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

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

      Parameters:
        `type` - 会话类型。
        `targetId` - 会话 id。根据不同的 conversationType，可能是用户 id、讨论组 id、群组 id 或聊天室 id。
        `content` - 消息内容，例如 TextMessage, ImageMessage。
        `pushContent` - 当下发远程推送消息时，在通知栏里会显示这个字段。 如果发送的是自定义消息，该字段必须填写，否则无法收到远程推送消息。 如果发送 SDK 中默认的消息类型，例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg，则不需要填写，默认已经指定。
        `pushData` - 远程推送附加信息。如果设置该字段，用户在收到 push 消息时，能通过 getPushData 方法获取。
        `callback` - 发送消息的回调。参考 。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### sendMessage

           void sendMessage(Message message, String pushContent, String pushData, ISendMessageCallback callback)

      发送消息。 通过 IRongCallback.ISendMessageCallback 中的方法回调发送的消息状态及消息体。

      Parameters:
        `message` - 将要发送的消息体。
        `pushContent` - 当下发 push 消息时，在通知栏里会显示这个字段。 如果发送的是自定义消息，该字段必须填写，否则无法收到 push 消息。 如果发送 sdk 中默认的消息类型，例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg，则不需要填写，默认已经指定。
        `pushData` - push 附加信息。如果设置该字段，用户在收到 push 消息时，能通过 getPushData 方法获取。
        `callback` - 发送消息的回调，参考 。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### sendMessage

           void sendMessage(Message message, String pushContent, String pushData, SendMessageOption option, ISendMessageCallback callback)

      发送消息。 通过 IRongCallback.ISendMessageCallback 中的方法回调发送的消息状态及消息体。

      Parameters:
        `message` - 将要发送的消息体。
        `pushContent` - 当下发 push 消息时，在通知栏里会显示这个字段。 如果发送的是自定义消息，该字段必须填写，否则无法收到 push 消息。 如果发送 sdk 中默认的消息类型，例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg，则不需要填写，默认已经指定。
        `pushData` - push 附加信息。如果设置该字段，用户在收到 push 消息时，能通过 getPushData 方法获取。
        `option` - 发送消息附加选项，目前仅支持设置 isVoIPPush，如果对端设备是 iOS,设置 isVoIPPush 为 True，会走 VoIP 通道推送 Push.
        `callback` - 发送消息的回调，参考 。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。

    - #### setGroupMembersProvider

           void setGroupMembersProvider(IGroupMembersProvider groupMembersProvider)

      设置群组成员提供者。

      '@' 功能和VoIP功能在选人界面,需要知道群组内成员信息,开发者需要设置该提供者。 开发者需要在回调中获取到群成员信息 并通过中的方法设置到 sdk 中

      Parameters:
        `groupMembersProvider` - 群组成员提供者。

    - #### getCurrentUserId

           String getCurrentUserId()

      获取当前连接用户的信息。

      Returns:

        当前连接用户的信息。

    - #### setMaxVoiceDuration

           void setMaxVoiceDuration(int sec)

      设置语音消息的最大长度

      Parameters:
        `sec` - 默认值是60s

    - #### getVoiceMessageType

           IMCenter.VoiceMessageType getVoiceMessageType()

      语音消息类型

      Returns:

        当前设置的语音消息类型

    - #### setVoiceMessageType

           void setVoiceMessageType(IMCenter.VoiceMessageType voiceMessageType)

      设置语音消息类型

      Parameters:
        `voiceMessageType` - 消息类型IMCenter.VoiceMessageType

    - #### getSamplingRate

           int getSamplingRate()

      语音消息采样率

      Returns:

        当前设置的语音采样率

    - #### setSamplingRate

           void setSamplingRate(SamplingRate sampleRate)

      设置语音消息采样率

      Parameters:
        `sampleRate` - 消息采样率AudioRecordManager.

    - #### setMessageInterceptor

           void setMessageInterceptor(MessageInterceptor interceptor)

      设置消息拦截器。

      Parameters:
        `interceptor` - 消息发送或接受的拦截器。

    - #### setMessageSentStatus

           void )>setMessageSentStatus(Message message, ResultCallback<Boolean> callback)

      根据消息 Message 设置消息状态，回调方式获取设置是否成功。

      Parameters:
        `message` - 消息实体。要设置的发送状态包含在 message 中
        `callback` - 是否设置成功的回调。

    - #### setPublicServiceMenuClickListener

           void setPublicServiceMenuClickListener(IPublicServiceMenuClickListener menuClickListener)

      设置公众服务菜单点击监听。 建议使用方法：在进入对应公众服务会话时，设置监听。当退出会话时，重置监听为 null，这样可以防止内存泄露。

      Parameters:
        `menuClickListener` - 监听。

    - #### setReadReceiptConversationTypeList

           void setReadReceiptConversationTypeList(Array<ConversationType> types)

      设置发送消息回执的会话类型。目前只支持私聊，群组和讨论组。 默认支持私聊。

      Parameters:
        `types` - 包含在types里的会话类型中将会发送消息回执。

    - #### setCurrentUserInfo

           void setCurrentUserInfo(UserInfo userInfo)

      设置当前用户信息。 如果开发者没有实现用户信息提供者，而是使用消息携带用户信息，需要使用这个方法设置当前用户的信息， 然后在init之后调用getInstance.setMessageAttachedUserInfo(boolean)}， 这样可以在每条消息中携带当前用户的信息，IMKit会在接收到消息的时候取出用户信息并刷新到界面上。

      Parameters:
        `userInfo` - 当前用户信息。

    - #### setMessageAttachedUserInfo

           void setMessageAttachedUserInfo(boolean state)

      设置消息体内是否携带用户信息。

      Parameters:
        `state` - 是否携带用户信息，true 携带，false 不携带。

    - #### startChatRoomChat

           void startChatRoomChat(Context context, String chatRoomId, boolean createIfNotExist)

      启动聊天室会话。

      设置参数 createIfNotExist 为 true，对应到 kit 中调用的接口是 joinChatRoom. 如果聊天室不存在，则自动创建并加入，如果回调失败，则弹出 warning。

      设置参数 createIfNotExist 为 false，对应到 kit 中调用的接口是 joinExistChatRoom. 如果聊天室不存在，则返回错误 RC_CHATROOM_NOT_EXIST.

      Parameters:
        `context` - 应用上下文。
        `chatRoomId` - 聊天室 id。
        `createIfNotExist` - 如果聊天室不存在，是否创建。

    - #### startConversation

           void startConversation(Context context, ConversationType conversationType, String targetId, Bundle bundle)

      启动会话界面。

      使用时，可以传入多种会话类型 Conversation.ConversationType 对应不同的会话类型，开启不同的会话界面。 如果传入的是 CHATROOM，sdk 会默认调用 joinChatRoom 加入聊天室。 如果你的逻辑是，只允许加入已存在的聊天室，请使用接口 startChatRoomChat 并且第三个参数为 false

      Parameters:
        `context` - 应用上下文。
        `conversationType` - 会话类型。
        `targetId` - 根据不同的 conversationType，可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。
        `bundle` - 参数传递 bundle

    - #### startCustomerServiceChat

           void startCustomerServiceChat(Context context, String customerServiceId, String title, CSCustomServiceInfo customServiceInfo)

      启动客户服聊天界面。

      Parameters:
        `context` - 应用上下文。
        `customerServiceId` - 要与之聊天的客服 Id。
        `title` - 聊天的标题。开发者需要在聊天界面通过intent.getData().
        `customServiceInfo` - 当前使用客服者的用户信息。CSCustomServiceInfo

    - #### startSubConversationList

           void startSubConversationList(Context context, ConversationType conversationType)

      启动聚合后的某类型的会话列表。 例如：如果设置了单聊会话为聚合，则通过该方法可以打开包含所有的单聊会话的列表。

      Parameters:
        `context` - 应用上下文。
        `conversationType` - 会话类型。

    - #### setMessageReceivedStatus

           void )>setMessageReceivedStatus(int messageId, ConversationType conversationType, String targetId, ReceivedStatus receivedStatus, ResultCallback<Boolean> callback)

      设置消息接收状态

      Parameters:
        `messageId` - 消息 ID
        `conversationType` - 聊天类型
        `receivedStatus` - 消息接收状态
        `callback` - 回调。该回调在主线程中执行，请避免在回调中执行耗时操作，防止 SDK 线程阻塞。
      Since:

        5.2.5