RongIM

public class RongIM

Functions

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