Class RongIM
-
- All Implemented Interfaces:
public class RongIM
-
-
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
>)>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)
设置消息接收状态 -
-
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
- 发送方 IdreceivedStatus
- 接收状态 @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
- 发送方 IdreceivedStatus
- 接收状态 @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
void getMessages(ConversationType conversationType, String targetId, HistoryMessageOption historyMsgOption, IGetMessageCallback callback)
获取指定会话历史消息。
此方法先从本地获取历史消息,本地有缺失的情况下会从服务端同步缺失的部分;从服务端同步失败的时候会返回非 0 的 errorCode,同时把本地能取到的消息回调上去。 必须开通历史消息云存储功能。
- Parameters:
conversationType
- 会话类型 io.rong.imlib.model.Conversation.targetId
- 会话 id。historyMsgOption
- HistoryMessageOptioncallback
- 获取消息的回调。该回调在主线程中执行,请避免在回调中执行耗时操作,防止 SDK 线程阻塞。
-
getMessages
void getMessages(ConversationIdentifier conversationIdentifier, HistoryMessageOption historyMsgOption, IGetMessageCallback callback)
获取指定会话历史消息。
此方法先从本地获取历史消息,本地有缺失的情况下会从服务端同步缺失的部分;从服务端同步失败的时候会返回非 0 的 errorCode,同时把本地能取到的消息回调上去。 必须开通历史消息云存储功能。
- Parameters:
conversationIdentifier
- 会话标识historyMsgOption
- HistoryMessageOptioncallback
- 获取消息的回调。该回调在主线程中执行,请避免在回调中执行耗时操作,防止 SDK 线程阻塞。
-
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
- RemoteHistoryMsgOptioncallback
- 获取历史消息记录的回调,按照时间顺序从新到旧排列。该回调在主线程中执行,请避免在回调中执行耗时操作,防止 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
- 消息内容,例如 TextMessageuserIds
- 会话中将会接收到此消息的用户列表。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
- 消息 IDconversationType
- 聊天类型receivedStatus
- 消息接收状态callback
- 回调。该回调在主线程中执行,请避免在回调中执行耗时操作,防止 SDK 线程阻塞。- Since:
5.2.5
-
-
-
-