public class RongIMClient
extends java.lang.Object
限定符和类型 | 方法和说明 |
---|---|
void |
addMemberToDiscussion(java.lang.String discussionId,
java.util.List<java.lang.String> userIdList,
RongIMClient.OperationCallback callback)
已过时。
已废弃。
|
void |
addRealTimeLocationListener(Conversation.ConversationType conversationType,
java.lang.String targetId,
RongIMClient.RealTimeLocationListener listener)
添加位置共享监听。
|
void |
addToBlacklist(java.lang.String userId,
RongIMClient.OperationCallback callback)
将某个用户加入黑名单。
|
void |
appOnStart()
应用回到前台,通知 SDK
onAppBackgroundChanged(boolean) )}。 |
void |
beginDestructMessage(Message message,
RongIMClient.DestructCountDownTimerListener pListener)
开始焚烧消息,仅支持单聊。
|
void |
cancelDownloadMediaMessage(Message message,
RongIMClient.OperationCallback callback)
取消多媒体消息下载。
|
void |
cancelSDKHeartBeat()
取消 sdk 心跳,在连接成功之后调用,整个应用程序全局只需要调用一次。
|
void |
cancelSendMediaMessage(Message message,
RongIMClient.OperationCallback callback)
取消发送多媒体文件。
|
void |
cleanHistoryMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
long recordTime,
boolean cleanRemote,
RongIMClient.OperationCallback callback)
删除指定时间戳之前的消息,可选择是否同时删除服务器端消息
此方法可从服务器端清除历史消息,但是必须先开通历史消息云存储功能。
|
void |
cleanRemoteHistoryMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
long recordTime,
RongIMClient.OperationCallback callback)
清除服务器上存储的历史消息。
|
void |
clearConversations(RongIMClient.ResultCallback callback,
Conversation.ConversationType... conversationTypes)
清空指定会话类型列表中的所有会话及会话信息。
|
boolean |
clearEncryptedConversations()
清除本地所有加密会话。
|
void |
clearMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
RongIMClient.ResultCallback<java.lang.Boolean> callback)
删除某个会话中的所有消息。
|
void |
clearMessagesUnreadStatus(Conversation.ConversationType conversationType,
java.lang.String targetId,
long timestamp,
RongIMClient.OperationCallback callback)
清除某个会话中的未读消息数。
|
void |
clearMessagesUnreadStatus(Conversation.ConversationType conversationType,
java.lang.String targetId,
RongIMClient.ResultCallback<java.lang.Boolean> callback)
清除某个会话中的未读消息数。
|
void |
clearTextMessageDraft(Conversation.ConversationType conversationType,
java.lang.String targetId,
RongIMClient.ResultCallback<java.lang.Boolean> callback)
删除指定会话中的草稿信息。
|
static RongIMClient |
connect(java.lang.String token,
int timeLimit,
RongIMClient.ConnectCallback connectCallback)
连接融云服务器,在整个应用程序全局,只需要调用一次,需在
init(Context) 之后调用。 |
static RongIMClient |
connect(java.lang.String token,
RongIMClient.ConnectCallback connectCallback)
连接融云服务器,在整个应用程序全局,只需要调用一次,需在
init(Context) 之后调用。 |
void |
createDiscussion(java.lang.String name,
java.util.List<java.lang.String> userIdList,
RongIMClient.CreateDiscussionCallback callback)
已过时。
已废弃。
|
void |
deleteMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
RongIMClient.ResultCallback<java.lang.Boolean> callback)
删除某个会话中的所有消息。
|
void |
deleteMessages(int[] messageIds,
RongIMClient.ResultCallback<java.lang.Boolean> callback)
删除消息。
|
void |
deleteRemoteMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
Message[] messages,
RongIMClient.OperationCallback callback)
批量删除某个会话中的指定远端消息(同时删除对应的本地消息)。
|
void |
disconnect()
断开与融云服务器的连接,但仍然接收远程推送。
|
void |
disconnect(boolean isReceivePush)
断开与融云服务器的连接,根据参数选择是否继续接收远程推送。
|
void |
downloadMedia(Conversation.ConversationType conversationType,
java.lang.String targetId,
RongIMClient.MediaType mediaType,
java.lang.String imageUrl,
RongIMClient.DownloadMediaCallback callback)
下载多媒体文件。
|
void |
downloadMediaFile(java.lang.String fileUniqueId,
java.lang.String fileUrl,
java.lang.String fileName,
java.lang.String path,
IRongCallback.IDownloadMediaFileCallback callback)
下载文件。
|
void |
downloadMediaMessage(Message message,
IRongCallback.IDownloadMediaMessageCallback callback)
下载多媒体文件。
|
void |
evaluateCustomService(java.lang.String kefuId,
boolean isRobotResolved,
java.lang.String knowledgeId)
评价机器人客服,用于人工机器人分开评价。
|
void |
evaluateCustomService(java.lang.String kefuId,
int source,
CustomServiceConfig.CSEvaSolveStatus solveStatus,
java.lang.String suggest,
java.lang.String dialogId)
评价机器人客服,用于人工机器人统一评价。
|
void |
evaluateCustomService(java.lang.String kefuId,
int source,
CustomServiceConfig.CSEvaSolveStatus resolvestatus,
java.lang.String tagText,
java.lang.String suggest,
java.lang.String dialogId,
java.lang.String extra)
评价机器人客服,用于人工机器人分开评价。
|
void |
evaluateCustomService(java.lang.String kefuId,
int source,
java.lang.String suggest,
java.lang.String dialogId)
评价机器人客服,用于人工机器人分开评价。
|
void |
forceRemoveChatRoomEntry(java.lang.String chatRoomId,
java.lang.String key,
java.lang.Boolean sendNotification,
java.lang.String notificationExtra,
RongIMClient.OperationCallback callback)
强制删除聊天室自定义属性。
|
void |
forceSetChatRoomEntry(java.lang.String chatRoomId,
java.lang.String key,
java.lang.String value,
boolean sendNotification,
boolean autoDelete,
java.lang.String notificationExtra,
RongIMClient.OperationCallback callback)
强制设置聊天室自定义属性。
|
void |
getAllChatRoomEntries(java.lang.String chatRoomId,
RongIMClient.ResultCallback<java.util.Map<java.lang.String,java.lang.String>> callback)
获取聊天室所有属性。
|
java.util.List<RCEncryptedSession> |
getAllEncryptedConversations()
获取所有加密会话。
|
void |
getBlacklist(RongIMClient.GetBlacklistCallback callback)
获取当前用户设置的黑名单列表。
|
void |
getBlacklistStatus(java.lang.String userId,
RongIMClient.ResultCallback<RongIMClient.BlacklistStatus> callback)
获取某用户是否在黑名单中。
|
void |
getBlockedConversationList(RongIMClient.ResultCallback<java.util.List<Conversation>> callback,
Conversation.ConversationType... conversationTypes)
获取免打扰的会话列表。
|
void |
getChatRoomEntry(java.lang.String chatRoomId,
java.lang.String key,
RongIMClient.ResultCallback<java.util.Map<java.lang.String,java.lang.String>> callback)
获取聊天室单个属性。
|
void |
getChatroomHistoryMessages(java.lang.String targetId,
long recordTime,
int count,
RongIMClient.TimestampOrder order,
IRongCallback.IChatRoomHistoryMessageCallback callback)
获取聊天室历史消息。
|
void |
getChatRoomInfo(java.lang.String chatRoomId,
int defMemberCount,
ChatRoomInfo.ChatRoomMemberOrder order,
RongIMClient.ResultCallback<ChatRoomInfo> callback)
获取聊天室的信息(包含部分成员信息和当前聊天室中的成员总数)。
|
void |
getConversation(Conversation.ConversationType conversationType,
java.lang.String targetId,
RongIMClient.ResultCallback<Conversation> callback)
获取单个会话信息。
|
void |
getConversationList(RongIMClient.ResultCallback<java.util.List<Conversation>> callback)
获取当前用户本地会话列表,该方法返回的是以下类型的会话列表:私聊,群组,讨论组,系统会话。
|
void |
getConversationList(RongIMClient.ResultCallback<java.util.List<Conversation>> callback,
Conversation.ConversationType... conversationTypes)
根据会话类型,获取当前用户的本地会话列表。
|
void |
getConversationListByPage(RongIMClient.ResultCallback<java.util.List<Conversation>> callback,
long timeStamp,
int count,
Conversation.ConversationType... conversationTypes)
分页获取会话列表。
|
void |
getConversationNotificationStatus(Conversation.ConversationType conversationType,
java.lang.String targetId,
RongIMClient.ResultCallback<Conversation.ConversationNotificationStatus> callback)
获取会话消息提醒状态。
|
RongIMClient.ConnectionStatusListener.ConnectionStatus |
getCurrentConnectionStatus()
获取当前 IM 服务连接状态。
|
java.lang.String |
getCurrentUserId()
获取当前连接用户的信息。
|
long |
getDeltaTime()
获取本地时间与服务器时间的时间差。
|
void |
getDiscussion(java.lang.String discussionId,
RongIMClient.ResultCallback<Discussion> callback)
已过时。
已废弃。
|
int |
getEncryptedSessionStatus(java.lang.String targetId)
获取加密会话信令状态。
|
int |
getGIFLimitSize()
获取允许发送 GIF 图片大小最大值。
|
java.util.List<Message> |
getHistoryMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
int oldestMessageId,
int count)
|
void |
getHistoryMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
int oldestMessageId,
int count,
RongIMClient.ResultCallback<java.util.List<Message>> callback)
获取会话中,从指定消息之前、指定数量的、指定消息类型的最新消息实体。
|
void |
getHistoryMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
java.util.List<java.lang.String> objectNames,
long timestamp,
int count,
RongCommonDefine.GetMessageDirection direction,
RongIMClient.ResultCallback<java.util.List<Message>> callback)
获取会话中符合条件的消息列表。
|
void |
getHistoryMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
long sentTime,
int before,
int after,
RongIMClient.ResultCallback<java.util.List<Message>> resultCallback)
在会话中搜索指定消息的前
before 数量和 after 数量的消息。 |
java.util.List<Message> |
getHistoryMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
java.lang.String objectName,
int oldestMessageId,
int count)
|
void |
getHistoryMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
java.lang.String objectName,
int baseMessageId,
int count,
RongCommonDefine.GetMessageDirection direction,
RongIMClient.ResultCallback<java.util.List<Message>> callback)
获取会话中符合条件的消息列表。
|
void |
getHistoryMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
java.lang.String objectName,
int oldestMessageId,
int count,
RongIMClient.ResultCallback<java.util.List<Message>> callback)
获取会话中符合条件的消息列表。
|
static RongIMClient |
getInstance()
获取 IMLib 接口类实例,需在执行 init 方法初始化 SDK 后获取, 否则返回值为 NULL。
|
void |
getLatestMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
int count,
RongIMClient.ResultCallback<java.util.List<Message>> callback)
获取指定会话的最新消息。
|
void |
getMessage(int messageId,
RongIMClient.ResultCallback<Message> callback)
根据消息 id 获取消息体(数据库索引唯一值)。
|
void |
getMessageByUid(java.lang.String uid,
RongIMClient.ResultCallback<Message> callback)
通过全局唯一 id 获取消息实体。
|
void |
getMessageCount(Conversation.ConversationType conversationType,
java.lang.String targetId,
RongIMClient.ResultCallback<java.lang.Integer> callback)
获取指定会话的消息总数。
|
void |
getNotificationQuietHours(RongIMClient.GetNotificationQuietHoursCallback callback)
获取消息通知免打扰时间。
|
void |
getOfflineMessageDuration(RongIMClient.ResultCallback<java.lang.String> callback)
获取离线消息时间(以天为单位)。
|
void |
getPublicServiceList(RongIMClient.ResultCallback<PublicServiceProfileList> callback)
获取己关注公共账号列表。
|
void |
getPublicServiceProfile(Conversation.PublicServiceType publicServiceType,
java.lang.String publicServiceId,
RongIMClient.ResultCallback<PublicServiceProfile> callback)
获取某公共服务信息。
|
void |
getPushContentShowStatus(RongIMClient.ResultCallback<java.lang.Boolean> callback)
获取是否显示远程推送内容详情设置。
|
void |
getPushLanguage(RongIMClient.ResultCallback<RongIMClient.PushLanguage> callback)
获取远程推送语言设置。
|
void |
getPushReceiveStatus(RongIMClient.ResultCallback<java.lang.Boolean> callback)
获取是否接收远程推送的设置。
|
RealTimeLocationConstant.RealTimeLocationErrorCode |
getRealTimeLocation(Conversation.ConversationType conversationType,
java.lang.String targetId)
获取 RealTimeLocation 实例。
|
RealTimeLocationConstant.RealTimeLocationStatus |
getRealTimeLocationCurrentState(Conversation.ConversationType conversationType,
java.lang.String targetId)
获取位置共享状态。
|
java.util.List<java.lang.String> |
getRealTimeLocationParticipants(Conversation.ConversationType conversationType,
java.lang.String targetId)
获取位置共享的所有成员。
|
void |
getRemoteHistoryMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
long dateTime,
int count,
RongIMClient.ResultCallback<java.util.List<Message>> callback)
从服务器端获取指定时间之前的历史消息。
|
void |
getRemoteHistoryMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
RemoteHistoryMsgOption remoteHistoryMsgOption,
RongIMClient.ResultCallback<java.util.List<Message>> callback)
获取指定会话远端历史消息。
|
long |
getSendTimeByMessageId(int messageId)
根据消息 id 获取消息发送时间。
|
void |
getTextMessageDraft(Conversation.ConversationType conversationType,
java.lang.String targetId,
RongIMClient.ResultCallback<java.lang.String> callback)
获取会话中的草稿信息。
|
void |
getTheFirstUnreadMessage(Conversation.ConversationType conversationType,
java.lang.String targetId,
RongIMClient.ResultCallback<Message> callback)
获取第一条未读消息。
|
void |
getTopConversationList(RongIMClient.ResultCallback<java.util.List<Conversation>> callback,
Conversation.ConversationType... conversationTypes)
根据会话类型,获取置顶会话列表
|
android.app.Activity |
getTopForegroundActivity()
获取处于前台的最上层 Activity。
|
void |
getTotalUnreadCount(RongIMClient.ResultCallback<java.lang.Integer> callback)
获取所有会话的总未读消息数。
|
void |
getTotalUnreadCount(RongIMClient.ResultCallback<java.lang.Integer> callback,
Conversation... conversations)
获取所有指定会话的总未读消息数。
|
java.util.Collection<TypingStatus> |
getTypingUserListFromConversation(Conversation.ConversationType conversationType,
java.lang.String targetId)
获取会话正在输入的用户列表
|
void |
getUnreadCount(Conversation.ConversationType[] conversationTypes,
boolean containBlocked,
RongIMClient.ResultCallback<java.lang.Integer> callback)
获取指定会话类型的总未读消息数。
|
void |
getUnreadCount(Conversation.ConversationType[] conversationTypes,
RongIMClient.ResultCallback<java.lang.Integer> callback)
获取指定会话类型的总未读消息数。
|
void |
getUnreadCount(Conversation.ConversationType conversationType,
java.lang.String targetId,
RongIMClient.ResultCallback<java.lang.Integer> callback)
获取指定会话的未读消息数。
|
void |
getUnreadCount(RongIMClient.ResultCallback<java.lang.Integer> callback,
Conversation.ConversationType... conversationTypes)
获取指定会话类型的总未读消息数。
|
void |
getUnreadMentionedMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
RongIMClient.ResultCallback<java.util.List<Message>> callback)
获取会话中未读的 @ 消息。
|
void |
getVendorToken(RongIMClient.ResultCallback<java.lang.String> resultCallback)
获取登录者身份认证信息。
|
int |
getVideoLimitTime()
获取允许发送视频文件的最大时长。
|
static void |
init(android.app.Application application,
java.lang.String appKey)
初始化融云 SDK,在整个应用程序全局只需要调用一次。
|
static void |
init(android.content.Context context)
初始化 SDK,在整个应用程序全局只需要调用一次, 建议在 Application 继承类中调用。
|
static void |
init(android.content.Context context,
java.lang.String appKey)
初始化 SDK,在整个应用程序全局只需要调用一次, 建议在 Application 继承类中调用。
|
static void |
init(android.content.Context context,
java.lang.String appKey,
boolean enablePush)
初始化 SDK,在整个应用程序全局只需要调用一次, 建议在 Application 继承类中调用。
|
void |
insertIncomingMessage(Conversation.ConversationType type,
java.lang.String targetId,
java.lang.String senderUserId,
Message.ReceivedStatus receivedStatus,
MessageContent content,
long sentTime,
RongIMClient.ResultCallback<Message> resultCallback)
向本地会话中插入一条消息,方向为接收。
|
void |
insertIncomingMessage(Conversation.ConversationType type,
java.lang.String targetId,
java.lang.String senderUserId,
Message.ReceivedStatus receivedStatus,
MessageContent content,
RongIMClient.ResultCallback<Message> resultCallback)
向本地会话中插入一条消息,方向为接收。
|
void |
insertOutgoingMessage(Conversation.ConversationType type,
java.lang.String targetId,
Message.SentStatus sentStatus,
MessageContent content,
long sentTime,
RongIMClient.ResultCallback<Message> resultCallback)
向本地会话中插入一条消息,方向为发送。
|
void |
insertOutgoingMessage(Conversation.ConversationType type,
java.lang.String targetId,
Message.SentStatus sentStatus,
MessageContent content,
RongIMClient.ResultCallback<Message> resultCallback)
向本地会话中插入一条消息。
|
boolean |
isFileDownloading(int messageId)
判断文件是否正在下载中。
|
boolean |
isFileDownloading(java.lang.String uid)
判断文件是否正在下载中。
|
void |
joinChatRoom(java.lang.String chatRoomId,
int defMessageCount,
RongIMClient.OperationCallback callback)
加入聊天室。
|
void |
joinExistChatRoom(java.lang.String chatRoomId,
int defMessageCount,
RongIMClient.OperationCallback callback)
加入已存在的聊天室。
|
RealTimeLocationConstant.RealTimeLocationErrorCode |
joinRealTimeLocation(Conversation.ConversationType conversationType,
java.lang.String targetId)
加入位置共享。
|
void |
leaveMessageCustomService(java.lang.String kefuId,
java.util.Map<java.lang.String,java.lang.String> contentMap,
RongIMClient.OperationCallback operationCallback)
客服留言。
|
void |
logout()
断开与融云服务器的连接,并且不再接收远程推送消息。
|
void |
pauseDownloadMediaFile(java.lang.String fileUniqueId,
RongIMClient.OperationCallback callback)
暂停多媒体文件下载。
|
void |
pauseDownloadMediaMessage(Message message,
RongIMClient.OperationCallback callback)
暂停多媒体消息下载。
|
void |
quitChatRoom(java.lang.String chatRoomId,
RongIMClient.OperationCallback callback)
退出聊天室。
|
void |
quitDiscussion(java.lang.String discussionId,
RongIMClient.OperationCallback callback)
已过时。
已废弃。
|
void |
quitEncryptedSession(java.lang.String targetId)
退出加密会话。
|
void |
quitRealTimeLocation(Conversation.ConversationType conversationType,
java.lang.String targetId)
退出位置共享。
|
void |
recallMessage(Message message,
java.lang.String pushContent,
RongIMClient.ResultCallback<RecallNotificationMessage> callback)
撤回消息
|
static void |
registerMessageType(java.lang.Class<? extends MessageContent> messageContentClass)
已过时。
已废弃。请使用
registerMessageType(List) 。 |
static void |
registerMessageType(java.util.List<java.lang.Class<? extends MessageContent>> messageContentClassList)
批量注册自定义消息类型
请在初始化之后,连接之前调用该方法注册自定义消息。
|
void |
removeChatRoomEntry(java.lang.String chatRoomId,
java.lang.String key,
java.lang.Boolean sendNotification,
java.lang.String notificationExtra,
RongIMClient.OperationCallback callback)
删除聊天室自定义属性。
|
void |
removeConversation(Conversation.ConversationType conversationType,
java.lang.String targetId,
RongIMClient.ResultCallback<java.lang.Boolean> callback)
从会话列表中移除某一会话。
|
void |
removeFromBlacklist(java.lang.String userId,
RongIMClient.OperationCallback callback)
将某个用户从黑名单中移出。
|
void |
removeMemberFromDiscussion(java.lang.String discussionId,
java.lang.String userId,
RongIMClient.OperationCallback callback)
已过时。
已废弃。
|
void |
removeMessageExpansion(java.util.List<java.lang.String> keyArray,
java.lang.String messageUId,
RongIMClient.OperationCallback callback)
删除消息扩展信息中特定的键值对
|
void |
removeNotificationQuietHours(RongIMClient.OperationCallback callback)
移除消息通知免打扰时间。
|
void |
removeRealTimeLocationObserver(Conversation.ConversationType conversationType,
java.lang.String targetId)
移除位置共享监听。
|
void |
saveTextMessageDraft(Conversation.ConversationType conversationType,
java.lang.String targetId,
java.lang.String content,
RongIMClient.ResultCallback<java.lang.Boolean> callback)
保存会话草稿信息。
|
void |
searchConversations(java.lang.String keyword,
Conversation.ConversationType[] conversationTypes,
java.lang.String[] objectNames,
RongIMClient.ResultCallback<java.util.List<SearchConversationResult>> resultCallback)
根据关键字搜索会话。
|
void |
searchMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
java.lang.String keyword,
int count,
long beginTime,
RongIMClient.ResultCallback<java.util.List<Message>> resultCallback)
根据关键字搜索指定会话中的消息。
|
void |
searchMessagesByUser(Conversation.ConversationType conversationType,
java.lang.String targetId,
java.lang.String userId,
int count,
long beginTime,
RongIMClient.ResultCallback<java.util.List<Message>> resultCallback)
根据用户 id 搜索指定会话中的消息。
|
void |
searchPublicService(RongIMClient.SearchType searchType,
java.lang.String keywords,
RongIMClient.ResultCallback<PublicServiceProfileList> callback)
搜索公众服务。
|
void |
searchPublicServiceByType(Conversation.PublicServiceType publicServiceType,
RongIMClient.SearchType searchType,
java.lang.String keywords,
RongIMClient.ResultCallback<PublicServiceProfileList> callback)
按公众服务类型搜索公众服务。
|
void |
selectCustomServiceGroup(java.lang.String kefuId,
java.lang.String groupId)
发送转人工客服消息
|
void |
sendDirectionalMediaMessage(Message message,
java.lang.String[] userIds,
java.lang.String pushContent,
java.lang.String pushData,
IRongCallback.ISendMediaMessageCallback callback)
发送定向多媒体消息。
|
void |
sendDirectionalMessage(Conversation.ConversationType type,
java.lang.String targetId,
MessageContent content,
java.lang.String[] userIds,
java.lang.String pushContent,
java.lang.String pushData,
IRongCallback.ISendMessageCallback callback)
发送定向消息。
|
void |
sendImageMessage(Conversation.ConversationType type,
java.lang.String targetId,
MessageContent content,
java.lang.String pushContent,
java.lang.String pushData,
RongIMClient.SendImageMessageCallback callback)
发送图片消息。
|
void |
sendImageMessage(Message message,
java.lang.String pushContent,
java.lang.String pushData,
RongIMClient.SendImageMessageCallback callback)
发送图片消息。
|
void |
sendImageMessage(Message message,
java.lang.String pushContent,
java.lang.String pushData,
RongIMClient.SendImageMessageWithUploadListenerCallback callback)
发送图片消息。
|
void |
sendLocationMessage(Message message,
java.lang.String pushContent,
java.lang.String pushData,
IRongCallback.ISendMessageCallback sendMessageCallback)
发送地理位置消息。
|
void |
sendMediaMessage(Message message,
java.lang.String pushContent,
java.lang.String pushData,
IRongCallback.ISendMediaMessageCallback callback)
发送多媒体消息。
|
void |
sendMediaMessage(Message message,
java.lang.String pushContent,
java.lang.String pushData,
IRongCallback.ISendMediaMessageCallbackWithUploader callback)
发送多媒体消息,可以使用该方法将多媒体文件上传到自己的服务器。
|
void |
sendMessage(Conversation.ConversationType type,
java.lang.String targetId,
MessageContent content,
java.lang.String pushContent,
java.lang.String pushData,
IRongCallback.ISendMessageCallback callback)
根据会话类型,发送消息。
|
void |
sendMessage(Message message,
java.lang.String pushContent,
java.lang.String pushData,
IRongCallback.ISendMessageCallback callback)
发送消息。
|
void |
sendMessage(Message message,
java.lang.String pushContent,
java.lang.String pushData,
SendMessageOption option,
IRongCallback.ISendMessageCallback callback)
发送消息。
|
void |
sendPing()
OEM 实现心跳对齐,发送 Ping 接口
|
void |
sendReadReceiptMessage(Conversation.ConversationType conversationType,
java.lang.String targetId,
long timestamp)
发送某个会话中的消息阅读回执
使用 IMLib 可以注册监听
setReadReceiptListener(io.rong.imlib.RongIMClient.ReadReceiptListener) ;使用 IMkit 直接设置 rc_config.xml 中 rc_read_receipt 为 true。 |
void |
sendReadReceiptMessage(Conversation.ConversationType conversationType,
java.lang.String targetId,
long timestamp,
IRongCallback.ISendMessageCallback callback)
发送某个会话中的消息阅读回执。
|
void |
sendReadReceiptRequest(Message message,
RongIMClient.OperationCallback callback)
发起消息已读回执请求(只支持群组和讨论组)。
|
void |
sendReadReceiptResponse(Conversation.ConversationType type,
java.lang.String targetId,
java.util.List<Message> messageList,
RongIMClient.OperationCallback callback)
发送已读回执(只支持群组和讨论组)
|
void |
sendTypingStatus(Conversation.ConversationType conversationType,
java.lang.String targetId,
java.lang.String typingContentType)
向会话中发送正在输入的状态,目前只支持单聊。
|
void |
setAppVer(java.lang.String appVer)
设置集成融云 SDK 的用户应用版本信息。
|
static void |
setChatRoomActionListener(RongIMClient.ChatRoomActionListener listener)
设置聊天室操作监听。
|
void |
setChatRoomEntry(java.lang.String chatRoomId,
java.lang.String key,
java.lang.String value,
boolean sendNotification,
boolean autoDelete,
java.lang.String notificationExtra,
RongIMClient.OperationCallback callback)
设置聊天室自定义属性。
|
static void |
setConnectionStatusListener(RongIMClient.ConnectionStatusListener listener)
设置连接状态变化的监听器。
|
void |
setConversationNotificationStatus(Conversation.ConversationType conversationType,
java.lang.String targetId,
Conversation.ConversationNotificationStatus notificationStatus,
RongIMClient.ResultCallback<Conversation.ConversationNotificationStatus> callback)
设置会话消息提醒状态。
|
void |
setConversationStatusListener(RongIMClient.ConversationStatusListener listener)
设置会话状态(置顶和免打扰)多端同步监听
|
void |
setConversationToTop(Conversation.ConversationType conversationType,
java.lang.String id,
boolean isTop,
boolean needCreate,
RongIMClient.ResultCallback<java.lang.Boolean> callback)
设置会话的置顶状态。
|
void |
setConversationToTop(Conversation.ConversationType conversationType,
java.lang.String id,
boolean isTop,
RongIMClient.ResultCallback<java.lang.Boolean> callback)
设置会话的置顶状态。
|
void |
setCustomServiceHumanEvaluateListener(CustomServiceManager.OnHumanEvaluateListener listener)
设置人工评价监听。
|
void |
setDiscussionInviteStatus(java.lang.String discussionId,
RongIMClient.DiscussionInviteStatus status,
RongIMClient.OperationCallback callback)
已过时。
已废弃。
|
void |
setDiscussionName(java.lang.String discussionId,
java.lang.String name,
RongIMClient.OperationCallback callback)
已过时。
已废弃。
|
void |
setEncryptedSessionConnectionListener(RongIMClient.EncryptedSessionConnectionListener encryptedSessionConnectionListener)
设置密聊会话建立的监听
|
void |
setKVStatusListener(RongIMClient.KVStatusListener listener)
设置聊天室 KV 状态变化的监听
|
void |
setMessageExpansionListener(RongIMClient.MessageExpansionListener listener)
设置消息扩展监听
|
void |
setMessageExtra(int messageId,
java.lang.String value,
RongIMClient.ResultCallback<java.lang.Boolean> callback)
设置本地消息的附加信息。
|
void |
setMessageReadTime(long messageId,
long timestamp,
RongIMClient.OperationCallback callback)
设置消息已读时间。
|
void |
setMessageReceivedStatus(int messageId,
Message.ReceivedStatus receivedStatus,
RongIMClient.ResultCallback<java.lang.Boolean> callback)
设置消息接收状态。
|
void |
setMessageSentStatus(Message message,
RongIMClient.ResultCallback<java.lang.Boolean> callback)
设置消息发送状态。
|
void |
setNotificationQuietHours(java.lang.String startTime,
int spanMinutes,
RongIMClient.OperationCallback callback)
设置消息通知免打扰时间。
|
void |
setOfflineMessageDuration(int duration,
RongIMClient.ResultCallback<java.lang.Long> callback)
设置离线消息在服务端的存储时间(以天为单位)。
|
static void |
setOnRecallMessageListener(RongIMClient.OnRecallMessageListener listener)
设置撤回消息监听器
|
void |
setOnReceiveDestructionMessageListener(RongIMClient.OnReceiveDestructionMessageListener listener)
设置阅后即焚消息接收监听器
|
static void |
setOnReceiveMessageListener(RongIMClient.OnReceiveMessageListener listener)
设置接收消息事件的监听器。
|
void |
setPushContentShowStatus(boolean showStatus,
RongIMClient.OperationCallback callback)
设置是否显示远程推送内容详情。
|
void |
setPushLanguage(RongIMClient.PushLanguage language,
RongIMClient.OperationCallback callback)
设置远程推送语言,目前支持中文和英文。
|
void |
setPushLanguageCode(java.lang.String language,
RongIMClient.OperationCallback callback)
设置推送内容的自然语言。
|
void |
setPushReceiveStatus(boolean receiveStatus,
RongIMClient.OperationCallback callback)
设置是否接收远程推送。
|
static void |
setRCLogInfoListener(RongIMClient.RCLogInfoListener listener)
设置 Log 输出监听。
|
static void |
setReadReceiptListener(RongIMClient.ReadReceiptListener listener)
设置消息回执监听器。
|
void |
setReconnectKickEnable(boolean enable)
设置断线重连时是否踢出重连设备。
|
void |
setRLogFileMaxSize(long pSize)
设置业务日志文件大小,默认 1M。
|
void |
setRLogLevel(int pLevel)
设置业务日志写文件等级。
|
static void |
setServerInfo(java.lang.String naviServer,
java.lang.String fileServer)
设置私有部署的导航服务器和媒体服务器地址。
|
static void |
setStatisticDomain(java.lang.String domain)
配置数据上传地址 (非必须)。
|
void |
setSyncConversationReadStatusListener(RongIMClient.SyncConversationReadStatusListener listener)
设置多端同步会话阅读状态监听。
|
static void |
setTypingStatusListener(RongIMClient.TypingStatusListener listener)
设置输入状态监听器。
|
void |
setUploadCallback(RLogReporter.UploadCallback pCallback)
设置上传 RLog 日志到服务器的回调
|
void |
startCustomService(java.lang.String kefuId,
ICustomServiceListener listener,
CSCustomServiceInfo customServiceInfo)
启动客服服务。
|
void |
startEncryptedSession(java.lang.String targetId)
开始加密会话。
|
RealTimeLocationConstant.RealTimeLocationErrorCode |
startRealTimeLocation(Conversation.ConversationType conversationType,
java.lang.String targetId)
发起位置共享。
|
void |
stopCustomService(java.lang.String kefuId)
退出客服服务。
|
void |
stopDestructMessage(Message message)
取消焚烧消息,仅支持单聊。
|
void |
subscribePublicService(Conversation.PublicServiceType publicServiceType,
java.lang.String publicServiceId,
RongIMClient.OperationCallback callback)
订阅公众号。
|
void |
supportResumeBrokenTransfer(java.lang.String url,
RongIMClient.ResultCallback<java.lang.Boolean> callback)
判断是否支持断点续传。
|
void |
switchAppKey(java.lang.String appKey)
切换 appKey。
|
void |
switchToHumanMode(java.lang.String kefuId)
切换到人工客服模式。
|
void |
syncConversationReadStatus(Conversation.ConversationType type,
java.lang.String targetId,
long timestamp,
RongIMClient.OperationCallback callback)
同步会话阅读状态。
|
void |
unsubscribePublicService(Conversation.PublicServiceType publicServiceType,
java.lang.String publicServiceId,
RongIMClient.OperationCallback callback)
取消订阅公众号。
|
void |
updateConversationInfo(Conversation.ConversationType conversationType,
java.lang.String targetId,
java.lang.String title,
java.lang.String portrait,
RongIMClient.ResultCallback callback)
更新会话信息。
|
void |
updateMessageExpansion(java.util.Map<java.lang.String,java.lang.String> expansion,
java.lang.String messageUId,
RongIMClient.OperationCallback callback)
更新消息扩展信息
每条消息携带扩展信息键值对最大值 300个,单次设置扩展信息键值对最大值 20个
|
void |
updateRealTimeLocationStatus(Conversation.ConversationType conversationType,
java.lang.String targetId,
double latitude,
double longitude,
RealTimeLocationType realTimeLocationType)
更新位置共享信息。
|
void |
uploadRLog()
上传 RLog 日志
在
connect(String, ConnectCallback) 成功后调用 |
public void setEncryptedSessionConnectionListener(RongIMClient.EncryptedSessionConnectionListener encryptedSessionConnectionListener)
encryptedSessionConnectionListener
- 密聊会话建立的监听public static RongIMClient getInstance()
public RongIMClient.ConnectionStatusListener.ConnectionStatus getCurrentConnectionStatus()
public static void init(android.app.Application application, java.lang.String appKey)
只能在主进程调用,建议在 Application 继承类中调用。
application
- Application 类对象。appKey
- 从融云开发者平台创建应用后获取到的 App Key。public static void init(android.content.Context context)
context
- Application 类的 Context。public static void init(android.content.Context context, java.lang.String appKey)
context
- Application 类的 Context。appKey
- 从融云开发者平台创建应用后获取到的 App Key。
此参数可选。如果不传值,SDK 会使用 AndroidManifest.xml 里配置的 RONG_CLOUD_APP_KEY。
<meta-data
android:name="RONG_CLOUD_APP_KEY" android:value="******" />
public static void init(android.content.Context context, java.lang.String appKey, boolean enablePush)
context
- Application 类的 Context。appKey
- 从融云开发者平台创建应用后获取到的 App Key。
此参数可选。如果不传值,SDK 会使用 AndroidManifest.xml 里配置的 RONG_CLOUD_APP_KEY。
<meta-data
android:name="RONG_CLOUD_APP_KEY" android:value="******" />
enablePush
- 是否使用推送功能。 true
启用推送; false
关闭推送。public static RongIMClient connect(java.lang.String token, RongIMClient.ConnectCallback connectCallback)
init(Context)
之后调用。
调用此接口返回非业务错误码时,SDK 会启动重连机制进行重连;如果仍没有连接成功,会在设备网络状态变化时再次进行重连。
如果您使用 IMKit,请使用 RongIM 中的同名方法建立与融云服务器的连接,而不要使用此方法。
token
- 从服务端获取的用户身份令牌(Token)。connectCallback
- 连接回调扩展类,新增打开数据库的回调(OnDatabaseOpened(DatabaseOpenStatus)),会返回数据库打开的状态,RongIMClient.DatabaseOpenStatus
;
DATABASE_OPEN_SUCCESS
执行拉取会话列表操作,DATABASE_OPEN_ERROR
不处理。RongIMClient.ConnectionErrorCode
错误码具体说明。public static RongIMClient connect(java.lang.String token, int timeLimit, RongIMClient.ConnectCallback connectCallback)
init(Context)
之后调用。
调用此接口返回非业务错误码时,SDK 会启动重连机制进行重连;如果仍没有连接成功,会在设备网络状态变化时再次进行重连。
如果您使用 IMKit,请使用 RongIM 中的同名方法建立与融云服务器的连接,而不要使用此方法。
token
- 从服务端获取的用户身份令牌(Token)。timeLimit
- 连接超时时间,单位:秒。timeLimit <= 0,则 IM 将一直连接,直到连接成功或者无法连接(如 token 非法)
timeLimit > 0 ,则 IM 将最多连接 timeLimit 秒:
如果在 timeLimit 秒内连接成功,后面再发生了网络变化或前后台切换,SDK 会自动重连;
如果在 timeLimit 秒无法连接成功则不再进行重连,通过 onError 告知连接超时,您需要再自行调用 connect 接口connectCallback
- 连接回调扩展类,新增打开数据库的回调(OnDatabaseOpened(DatabaseOpenStatus)),会返回数据库打开的状态,RongIMClient.DatabaseOpenStatus
;
DATABASE_OPEN_SUCCESS
执行拉取会话列表操作,DATABASE_OPEN_ERROR
不处理。RongIMClient.ConnectionErrorCode
错误码具体说明。public static void setConnectionStatusListener(RongIMClient.ConnectionStatusListener listener)
当回调的状态为 RongIMClient.ConnectionStatusListener.ConnectionStatus.TOKEN_INCORRECT
,
需要获取正确的token, 并主动调用connect(String, ConnectCallback)
。
如果使用 IMKit,使用 RongIM 中同名方法 setConnectionStatusListener
。
listener
- 连接状态变化的监听器。public static void setOnReceiveMessageListener(RongIMClient.OnReceiveMessageListener listener)
注意:建议设置应用生命周期的全局监听器。
listener
- 接收消息的监听器。@Deprecated public static void registerMessageType(java.lang.Class<? extends MessageContent> messageContentClass)
registerMessageType(List)
。请在初始化之后,连接之前调用该方法注册自定义消息。
messageContentClass
- 自定义消息的类,必须要继承自 MessageContent
。AnnotationNotFoundException
- 如果没有找到注解会抛出此异常,注解请参见 MessageTag
。public static void registerMessageType(java.util.List<java.lang.Class<? extends MessageContent>> messageContentClassList)
请在初始化之后,连接之前调用该方法注册自定义消息。
messageContentClassList
- 自定义消息的类列表,列表中的每项必须要继承自 MessageContent
。public android.app.Activity getTopForegroundActivity()
public void logout()
若想断开连接后仍然接受远程推送消息,可以调用 disconnect()
public void disconnect()
若想断开连接后不接受远程推送消息,可以调用logout()
。
注意:因为 SDK 在前后台切换或者网络出现异常都会自动重连,保证连接可靠性。
所以除非您的 App 逻辑需要登出,否则一般不需要调用此方法进行手动断开。
public void disconnect(boolean isReceivePush)
isReceivePush
- true
断开后接收远程推送;false
断开后不再接收远程推送。public void getConversationList(RongIMClient.ResultCallback<java.util.List<Conversation>> callback)
此方法会从本地数据库中,读取会话列表。返回的会话列表排序规则为:按照时间从前往后排列,如果有置顶的会话,则置顶的会话会排列在前面。
如果您需要获取其它类型的会话列表,可以使用getConversationList(ResultCallback, Conversation.ConversationType...)
。
需要在连接数据库打开回调 OnDatabaseOpened
后调用,RongIMClient.ConnectCallback
。
callback
- 获取会话列表的回调。public void getConversationList(RongIMClient.ResultCallback<java.util.List<Conversation>> callback, Conversation.ConversationType... conversationTypes)
callback
- 获取会话列表的回调。conversationTypes
- 要获取的会话类型。public void getTopConversationList(RongIMClient.ResultCallback<java.util.List<Conversation>> callback, Conversation.ConversationType... conversationTypes)
callback
- conversationTypes
- public void getConversationListByPage(RongIMClient.ResultCallback<java.util.List<Conversation>> callback, long timeStamp, int count, Conversation.ConversationType... conversationTypes)
callback
- 获取会话列表的回调。timeStamp
- 时间戳(毫秒),通过获取从此时间戳往前的会话,传入 0 表示从最新会话开始获取。参考 Message.getSentTime()
。count
- 取回的会话数量。当实际取回的会话数量小于 count 值时,表明已取完数据。
建议此数值不要超过 10 个,当一次性获取的会话数过大时,
会导致跨进程通信崩溃,引发获取会话列表失败及通信连接被中断。conversationTypes
- 要获取的会话类型。public void getBlockedConversationList(RongIMClient.ResultCallback<java.util.List<Conversation>> callback, Conversation.ConversationType... conversationTypes)
callback
- 获取免打扰会话的回调。conversationTypes
- 会话类型,Conversation.ConversationType
注意该参数必须传值,不能为空。
public void getConversation(Conversation.ConversationType conversationType, java.lang.String targetId, RongIMClient.ResultCallback<Conversation> callback)
conversationType
- 会话类型。参考 Conversation.ConversationType
。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id 或聊天室 id。callback
- 获取会话信息的回调。public void updateConversationInfo(Conversation.ConversationType conversationType, java.lang.String targetId, java.lang.String title, java.lang.String portrait, RongIMClient.ResultCallback callback)
conversationType
- 会话类型 Conversation.ConversationType
targetId
- 会话 idtitle
- 会话标题portrait
- 会话头像callback
- 回调public void removeConversation(Conversation.ConversationType conversationType, java.lang.String targetId, RongIMClient.ResultCallback<java.lang.Boolean> callback)
此方法不删除会话内的消息。如果此会话中有新的消息,该会话将重新在会话列表中显示,并显示最近的历史消息。
conversationType
- 会话类型 Conversation.ConversationType
。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id 或聊天室 id。callback
- 移除会话是否成功的回调,回调类型是 Boolean,ResultCallback<Boolean>
。public void setConversationToTop(Conversation.ConversationType conversationType, java.lang.String id, boolean isTop, RongIMClient.ResultCallback<java.lang.Boolean> callback)
会话置顶:设置此会话在会话列表的第一条(当有多个会话置顶时,按照设置时间排序,先设置的在前)。
例:依次设置 A、B、C 会话置顶,会话排序依次为 A、B、C。
会话不存在时设置置顶,会在会话列表生成会话;设置置顶之后删除会话,置顶设置自动失效。
conversationType
- 会话类型 Conversation.ConversationType
。id
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id 或聊天室 id。isTop
- 是否置顶。callback
- 设置置顶是否成功的回调。public void setConversationToTop(Conversation.ConversationType conversationType, java.lang.String id, boolean isTop, boolean needCreate, RongIMClient.ResultCallback<java.lang.Boolean> callback)
若会话不存在,调用此方法 SDK 自动创建会话并置顶。
conversationType
- 会话类型 Conversation.ConversationType
。id
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id 或聊天室 id。isTop
- 是否置顶。needCreate
- 会话不存在时,是否创建会话。callback
- 设置置顶是否成功的回调。public void getTotalUnreadCount(RongIMClient.ResultCallback<java.lang.Integer> callback)
注意:不包含聊天室,聊天室消息不计数。
callback
- 未读消息数的回调。public void getTotalUnreadCount(RongIMClient.ResultCallback<java.lang.Integer> callback, Conversation... conversations)
注意:不包含聊天室,聊天室消息不计数。
callback
- 获取指定会话总未读数的回调。conversations
- 指定会话。public void getUnreadCount(Conversation.ConversationType conversationType, java.lang.String targetId, RongIMClient.ResultCallback<java.lang.Integer> callback)
注意:不包含聊天室,聊天室消息不计数。
conversationType
- 会话类型 Conversation.ConversationType
。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id。callback
- 未读消息数的回调。public void getUnreadCount(RongIMClient.ResultCallback<java.lang.Integer> callback, Conversation.ConversationType... conversationTypes)
注意:不包含聊天室,聊天室消息不计数。
callback
- 未读消息数的回调。conversationTypes
- 会话类型,可传多个会话类型。public void getUnreadCount(Conversation.ConversationType[] conversationTypes, boolean containBlocked, RongIMClient.ResultCallback<java.lang.Integer> callback)
注意:不包含聊天室,聊天室消息不计数。
conversationTypes
- 会话类型数组 Conversation.ConversationType
。callback
- 未读消息数的回调。containBlocked
- 是否包含免打扰消息的未读消息数。public void getUnreadCount(Conversation.ConversationType[] conversationTypes, RongIMClient.ResultCallback<java.lang.Integer> callback)
注意:不包含聊天室,聊天室消息不计数。
conversationTypes
- 会话类型数组 Conversation.ConversationType
。callback
- 未读消息数的回调。public void getMessageCount(Conversation.ConversationType conversationType, java.lang.String targetId, RongIMClient.ResultCallback<java.lang.Integer> callback)
conversationType
- 会话类型 Conversation.ConversationType
。targetId
- 会话 id。callback
- 消息总数的回调。public void getLatestMessages(Conversation.ConversationType conversationType, java.lang.String targetId, int count, RongIMClient.ResultCallback<java.util.List<Message>> callback)
conversationType
- 会话类型 Conversation.ConversationType
。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id 或聊天室 id。count
- 需要获取的消息数量。callback
- 获取最新消息的回调,按照时间顺序从新到旧排列,如果会话中的消息数量小于参数 count 的值,会将该会话中的所有消息返回。@Deprecated public java.util.List<Message> getHistoryMessages(Conversation.ConversationType conversationType, java.lang.String targetId, int oldestMessageId, int count)
getHistoryMessages(Conversation.ConversationType, String, int, int, ResultCallback)
或 getHistoryMessages(Conversation.ConversationType, String, String, int, int, ResultCallback)
异步方法。
注意:
1. 此为同步方法,已废弃
2. 不支持拉取聊天室 Conversation.ConversationType.CHATROOM
历史消息
conversationType
- 会话类型 Conversation.ConversationType
,不支持聊天室。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id。oldestMessageId
- 最后一条消息的 id,获取此消息之前的 count 条消息,没有消息第一次调用应设置为:-1。count
- 要获取的消息数量。@Deprecated public java.util.List<Message> getHistoryMessages(Conversation.ConversationType conversationType, java.lang.String targetId, java.lang.String objectName, int oldestMessageId, int count)
getHistoryMessages(Conversation.ConversationType, String, int, int, ResultCallback)
或 getHistoryMessages(Conversation.ConversationType, String, String, int, int, ResultCallback)
异步方法。
注意:
1. 此方法已废弃
2. 不支持拉取聊天室 Conversation.ConversationType.CHATROOM
历史消息
conversationType
- 会话类型 Conversation.ConversationType
,不支持聊天室。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id。objectName
- 消息类型标识。oldestMessageId
- 最后一条消息的 id,获取此消息之前的 count 条消息,没有消息第一次调用应设置为:-1。count
- 要获取的消息数量。public void getHistoryMessages(Conversation.ConversationType conversationType, java.lang.String targetId, java.lang.String objectName, int oldestMessageId, int count, RongIMClient.ResultCallback<java.util.List<Message>> callback)
返回的消息中不包含 oldestMessageId 对应那条消息,如果会话中的消息数量小于参数 count 的值,会将该会话中的所有消息返回。
如:oldestMessageId 为 10,count 为 2,会返回 messageId 为 9 和 8 的 Message 对象列表。
注意: 不支持拉取聊天室 Conversation.ConversationType.CHATROOM
历史消息
conversationType
- 会话类型 Conversation.ConversationType
,不支持聊天室。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id 。objectName
- 消息类型标识。oldestMessageId
- 最后一条消息的 Id,获取此消息之前的 count 条消息,没有消息第一次调用应设置为:-1。count
- 要获取的消息数量callback
- 获取历史消息的回调,按照时间顺序从新到旧排列。public void getHistoryMessages(Conversation.ConversationType conversationType, java.lang.String targetId, java.lang.String objectName, int baseMessageId, int count, RongCommonDefine.GetMessageDirection direction, RongIMClient.ResultCallback<java.util.List<Message>> callback)
如:获取 messageId 为 22 的之前的 10条 图片消息,则相应参数为 getHistoryMessages(conversationType, targetId, "RC:ImgMsg", 22, 10, true, resultCallback)。
注意: 不支持拉取聊天室 Conversation.ConversationType.CHATROOM
历史消息
conversationType
- 会话类型 Conversation.ConversationType
,不支持聊天室。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id。objectName
- 消息类型标识。如 RC:TxtMsg,RC:ImgMsg,RC:VcMsg 等 MessageTag.value()
。baseMessageId
- 起始消息 id。count
- 需要获取的消息数量。direction
- 要获取的消息相对于 baseMessageId 的方向 RongCommonDefine.GetMessageDirection
以指定的 baseMessageId 作为获取的起始点,时间早于 baseMessageId 则为 FRONT,晚于则为 BEHIND。callback
- 获取历史消息的回调,按照时间顺序从新到旧排列。public void getHistoryMessages(Conversation.ConversationType conversationType, java.lang.String targetId, java.util.List<java.lang.String> objectNames, long timestamp, int count, RongCommonDefine.GetMessageDirection direction, RongIMClient.ResultCallback<java.util.List<Message>> callback)
如: 要获取 messageId 为 22 的之前的 10 条图片消息,和文字消息 objectNames 为字符串 List
objectNames.add("RC:ImgMsg"); objectNames.add("RC:TxtMsg");则相应参数为 getHistoryMessages(conversationType, targetId, objectNames, 22, 10, true, resultCallback)。
conversationType
- 会话类型 Conversation.ConversationType
,不支持聊天室。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id。objectNames
- 消息类型标识 List。如 RC:TxtMsg,RC:ImgMsg,RC:VcMsg 等构成的 List。timestamp
- 当前消息时间戳。count
- 需要获取的消息数量。direction
- 要获取的消息相对于当前消息的方向 RongCommonDefine.GetMessageDirection
以当前消息作为起始点,时间早于当前消息则为 FRONT,否则为 BEHIND。callback
- 获取历史消息的回调,按照时间顺序从新到旧排列。public void getRemoteHistoryMessages(Conversation.ConversationType conversationType, java.lang.String targetId, long dateTime, int count, RongIMClient.ResultCallback<java.util.List<Message>> callback)
区别于 getHistoryMessages(io.rong.imlib.model.Conversation.ConversationType, java.lang.String, int, int)
,该接口是从融云服务器中拉取。从服务端拉取消息后,客户端会做排重,返回排重后的数据。通常用于更换新设备后,拉取历史消息。
使用的时候,建议优先通过 getHistoryMessages(Conversation.ConversationType, String, int, int, ResultCallback)
从本地数据库拉取历史消息,
当本地数据库没有历史消息后,再通过此接口获取服务器历史消息,时间戳传入本地数据库里最早的消息时间戳。
注意:
1. 此功能需要在融云开发者后台开启历史消息云存储功能。
2. 当本地数据库中已存在将要获取的消息时,此接口不会再返回数据。
conversationType
- 会话类型。targetId
- 目标会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id。dateTime
- 从该时间点开始获取消息。即:消息中的 sentTime Message.getSentTime()
;如果本地库中没有消息,第一次可传 0,否则传入最早消息的sentTime,获取最新 count 条。count
- 需要获取的消息数量, 0 < count <= 20。callback
- 获取历史消息的回调,按照时间顺序从新到旧排列。public void getRemoteHistoryMessages(Conversation.ConversationType conversationType, java.lang.String targetId, RemoteHistoryMsgOption remoteHistoryMsgOption, RongIMClient.ResultCallback<java.util.List<Message>> callback)
此功能需要在融云开发者后台开启历史消息云存储功能。
注意:不支持聊天室!
conversationType
- 会话类型,不支持聊天室。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id。remoteHistoryMsgOption
- 可配置的参数 RemoteHistoryMsgOption
callback
- 获取历史消息的回调,按照时间顺序从新到旧排列。public void cleanRemoteHistoryMessages(Conversation.ConversationType conversationType, java.lang.String targetId, long recordTime, RongIMClient.OperationCallback callback)
根据会话类型和目标会话 id 清除某一会话指定时间戳之前的服务端历史消息, 清除成功后只能从服务端获取到该时间戳之后的历史消息。
注意:必须先开通历史消息云存储功能!
conversationType
- 会话类型。targetId
- 会话 id。recordTime
- 清除消息截止时间戳,【0 <= recordTime <= 当前会话最后一条消息的 sentTime,0 清除所有消息,其他值清除小于等于 recordTime 的消息】。callback
- 清除消息的回调。public void cleanHistoryMessages(Conversation.ConversationType conversationType, java.lang.String targetId, long recordTime, boolean cleanRemote, RongIMClient.OperationCallback callback)
此方法可从服务器端清除历史消息,但是必须先开通历史消息云存储功能。
根据会话类型和会话 id 清除某一会话指定时间戳之前的本地数据库消息(服务端历史消息),
清除成功后只能从本地数据库(服务端)获取到该时间戳之后的历史消息。
conversationType
- 会话类型。targetId
- 会话 id。recordTime
- 清除消息截止时间戳,【0 <= recordTime <= 当前会话最后一条消息的 sentTime,0 清除所有消息,其他值清除小于等于 recordTime 的消息】。cleanRemote
- 是否删除服务器端消息callback
- 清除消息的回调。public void getChatroomHistoryMessages(java.lang.String targetId, long recordTime, int count, RongIMClient.TimestampOrder order, IRongCallback.IChatRoomHistoryMessageCallback callback)
从服务器端获取聊天室之前的历史消息,如果指定时间 0,则从存储的第一条消息开始拉取。
注意:必须先开通聊天室消息云存储功能。
targetId
- 会话 id。recordTime
- 起始的消息发送时间戳,单位: 毫秒。count
- 需要获取的消息数量,0 < count <= 200。order
- 拉取顺序: 降序, 按照时间戳从大到小; 升序, 按照时间戳从小到大。callback
- 聊天室历史消息回调public void getHistoryMessages(Conversation.ConversationType conversationType, java.lang.String targetId, int oldestMessageId, int count, RongIMClient.ResultCallback<java.util.List<Message>> callback)
注意:不支持聊天室!
conversationType
- 会话类型,不支持聊天室。参考 Conversation.ConversationType
。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id。oldestMessageId
- 最后一条消息的 id。获取此消息之前的 count 条消息,没有消息第一次调用应设置为 -1。count
- 要获取的消息数量。callback
- 获取历史消息的回调,按照时间顺序从新到旧排列。public void deleteMessages(int[] messageIds, RongIMClient.ResultCallback<java.lang.Boolean> callback)
messageIds
- 要删除的消息 id 数组。callback
- 删除是否成功的回调。public void deleteMessages(Conversation.ConversationType conversationType, java.lang.String targetId, RongIMClient.ResultCallback<java.lang.Boolean> callback)
此接口删除指定会话中数据库的所有消息,同时会清理数据库空间,减少占用空间。
conversationType
- 会话类型,不支持聊天室。参考 Conversation.ConversationType
。targetId
- 会话 id。根据不同的 conversationType,可能是 userId, groupId, discussionId。callback
- 删除是否成功的回调。public void deleteRemoteMessages(Conversation.ConversationType conversationType, java.lang.String targetId, Message[] messages, RongIMClient.OperationCallback callback)
一次批量操作仅支持删除属于同一个会话的消息,请确保消息列表中的所有消息来自同一会话,一次最多删除 100 条消息。
注意:不支持聊天室!
conversationType
- 会话类型, 不支持聊天室。参考 Conversation.ConversationType
。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、客服 id。messages
- 要删除的消息数组, 数组大小不能超过 100 条。callback
- 删除是否成功的回调。public void clearMessages(Conversation.ConversationType conversationType, java.lang.String targetId, RongIMClient.ResultCallback<java.lang.Boolean> callback)
注意:不支持聊天室!
conversationType
- 会话类型,不支持聊天室。参考 Conversation.ConversationType
。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id。callback
- 清空是否成功的回调。public void clearMessagesUnreadStatus(Conversation.ConversationType conversationType, java.lang.String targetId, RongIMClient.ResultCallback<java.lang.Boolean> callback)
注意:不支持聊天室!
conversationType
- 会话类型,不支持聊天室。参考 Conversation.ConversationType
。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id。callback
- 清除是否成功的回调。public void setMessageExtra(int messageId, java.lang.String value, RongIMClient.ResultCallback<java.lang.Boolean> callback)
用于扩展消息的使用场景。设置后可以通过 getHistoryMessages(io.rong.imlib.model.Conversation.ConversationType, java.lang.String, int, int)
取出带附加信息的消息。
注意:只能用于本地使用,无法同步给远程用户。
messageId
- 消息 id。value
- 附加信息,最大 1024 字节。callback
- 是否设置成功的回调。public void setMessageReceivedStatus(int messageId, Message.ReceivedStatus receivedStatus, RongIMClient.ResultCallback<java.lang.Boolean> callback)
messageId
- 消息 id。receivedStatus
- 接收到的消息状态。参考 Message.ReceivedStatus
。callback
- 是否设置成功的回调。public void setMessageSentStatus(Message message, RongIMClient.ResultCallback<java.lang.Boolean> callback)
message
- 消息实体。参考 Message
。callback
- 是否设置成功的回调。public void getTextMessageDraft(Conversation.ConversationType conversationType, java.lang.String targetId, RongIMClient.ResultCallback<java.lang.String> callback)
conversationType
- 会话类型。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id 或聊天室 id。callback
- 获取草稿文字内容的回调。public void saveTextMessageDraft(Conversation.ConversationType conversationType, java.lang.String targetId, java.lang.String content, RongIMClient.ResultCallback<java.lang.Boolean> callback)
conversationType
- 会话类型。参考 Conversation.ConversationType
。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id 或聊天室 id。content
- 草稿的文字内容。callback
- 是否保存成功的回调。public void clearTextMessageDraft(Conversation.ConversationType conversationType, java.lang.String targetId, RongIMClient.ResultCallback<java.lang.Boolean> callback)
conversationType
- 会话类型。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id 或聊天室 id。callback
- 是否清除成功的回调。public void getDiscussion(java.lang.String discussionId, RongIMClient.ResultCallback<Discussion> callback)
discussionId
- 需要获取信息的讨论组 id。callback
- 获取讨论组的回调。public static void setChatRoomActionListener(RongIMClient.ChatRoomActionListener listener)
开发者可以通过设置监听,获取加入聊天室的状态回调。
listener
- 监听对象。public void setDiscussionName(java.lang.String discussionId, java.lang.String name, RongIMClient.OperationCallback callback)
discussionId
- 需要设置的讨论组 id。name
- 要设置的讨论组名称。callback
- 设置讨论组的回调。public void createDiscussion(java.lang.String name, java.util.List<java.lang.String> userIdList, RongIMClient.CreateDiscussionCallback callback)
name
- 讨论组名称。userIdList
- 讨论组成员 id 列表。callback
- 创建讨论组成功后的回调。public void addMemberToDiscussion(java.lang.String discussionId, java.util.List<java.lang.String> userIdList, RongIMClient.OperationCallback callback)
discussionId
- 讨论组 id。userIdList
- 邀请的用户 id 列表。callback
- 执行操作的回调。public void removeMemberFromDiscussion(java.lang.String discussionId, java.lang.String userId, RongIMClient.OperationCallback callback)
如果当前登陆用户不是此讨论组的创建者并且此讨论组没有开放加人权限,则会返回错误。不能使用此接口将自己移除,否则会返回错误。
如果您需要退出该讨论组,可以使用 quitDiscussion(String, OperationCallback)
方法。
discussionId
- 讨论组 id。userId
- 用户 id。callback
- 执行操作的回调 RongIMClient.OperationCallback
。public void quitDiscussion(java.lang.String discussionId, RongIMClient.OperationCallback callback)
discussionId
- 讨论组 id。callback
- 执行操作的回调。public void getMessage(int messageId, RongIMClient.ResultCallback<Message> callback)
messageId
- 消息 id。callback
- 回调。public void insertOutgoingMessage(Conversation.ConversationType type, java.lang.String targetId, Message.SentStatus sentStatus, MessageContent content, RongIMClient.ResultCallback<Message> resultCallback)
这条消息只是插入本地会话,不会实际发送给服务器和对方。
插入消息需为入库消息,即MessageTag.ISPERSISTED
,否者会回调 RongIMClient.ErrorCode.PARAMETER_ERROR
type
- 会话类型。targetId
- 会话 id。比如私人会话时,是对方的 id; 群组会话时,是群 id; 讨论组会话时,则为该讨论组的 id。sentStatus
- 发送状态 Message.SentStatus
content
- 消息内容。如TextMessage
ImageMessage
等。resultCallback
- 获得消息发送实体的回调。public void insertOutgoingMessage(Conversation.ConversationType type, java.lang.String targetId, Message.SentStatus sentStatus, MessageContent content, long sentTime, RongIMClient.ResultCallback<Message> resultCallback)
这条消息只是插入本地会话,不会实际发送给服务器和对方。
插入消息需为入库消息,即 MessageTag.ISPERSISTED
,否者会回调 RongIMClient.ErrorCode.PARAMETER_ERROR
type
- 会话类型。targetId
- 会话 id。比如私人会话时,是对方的 id; 群组会话时,是群 id; 讨论组会话时,则为该讨论组的 id。sentStatus
- 发送状态 Message.SentStatus
content
- 消息内容。如TextMessage
ImageMessage
等。sentTime
- 消息的发送时间 Message.getSentTime()
。resultCallback
- 获得消息发送实体的回调。public void insertIncomingMessage(Conversation.ConversationType type, java.lang.String targetId, java.lang.String senderUserId, Message.ReceivedStatus receivedStatus, MessageContent content, RongIMClient.ResultCallback<Message> resultCallback)
这条消息只是插入本地会话,不会实际发送给服务器和对方。插入消息需为入库消息,即 MessageTag.ISPERSISTED
,否者会回调 RongIMClient.ErrorCode.PARAMETER_ERROR
。
type
- 会话类型。targetId
- 会话 id。比如私人会话时,是对方的 id; 群组会话时,是群 id; 讨论组会话时,则为该讨论,组的 id。senderUserId
- 发送方 id。receivedStatus
- 接收状态 Message.ReceivedStatus
。content
- 消息内容。如TextMessage
ImageMessage
等。resultCallback
- 获得消息发送实体的回调。public void insertIncomingMessage(Conversation.ConversationType type, java.lang.String targetId, java.lang.String senderUserId, Message.ReceivedStatus receivedStatus, MessageContent content, long sentTime, RongIMClient.ResultCallback<Message> resultCallback)
这条消息只是插入本地会话,不会实际发送给服务器和对方。插入消息需为入库消息,即 MessageTag.ISPERSISTED
,否者会回调 RongIMClient.ErrorCode.PARAMETER_ERROR
。
type
- 会话类型。targetId
- 会话 id。比如私人会话时,是对方的 id; 群组会话时,是群 id; 讨论组会话时,则为该讨论组的 id。senderUserId
- 发送方 idreceivedStatus
- 接收状态 Message.ReceivedStatus
content
- 消息内容。如 TextMessage
ImageMessage
等。sentTime
- 消息的发送时间 Message.getSentTime()
。resultCallback
- 获得消息发送实体的回调。public void sendLocationMessage(Message message, java.lang.String pushContent, java.lang.String pushData, IRongCallback.ISendMessageCallback sendMessageCallback)
发送前构造 Message
消息实体,消息实体中的 content 必须为 LocationMessage
, 否则返回失败。
其中的缩略图地址 scheme 只支持 file:// 和 http://。也可不设置缩略图地址,传入 NULL。
message
- 消息实体。pushContent
- 当下发远程推送消息时,在通知栏里会显示这个字段。
如果发送的是自定义消息,该字段必须填写,否则无法收到远程推送消息。
如果发送 sdk 中默认的消息类型,例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg,则不需要填写,默认已经指定。pushData
- 远程推送附加信息。如果设置该字段,用户在收到远程推送消息时,能通过 io.rong.push.notification.PushNotificationMessage#getPushData()
方法获取。sendMessageCallback
- 发送消息的回调,参考 IRongCallback.ISendMessageCallback
。public void sendMessage(Conversation.ConversationType type, java.lang.String targetId, MessageContent content, java.lang.String pushContent, java.lang.String pushData, IRongCallback.ISendMessageCallback callback)
通过 IRongCallback.ISendMessageCallback
中的方法回调发送的消息状态及消息体。
注意:1 秒钟发送消息不能超过 5 条。
type
- 会话类型。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id 或聊天室 id。content
- 消息内容,例如 TextMessage
, ImageMessage
。pushContent
- 当下发远程推送消息时,在通知栏里会显示这个字段。
如果发送的是自定义消息,该字段必须填写,否则无法收到远程推送消息。
如果发送 SDK 中默认的消息类型,例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg,则不需要填写,默认已经指定。pushData
- 远程推送附加信息。如果设置该字段,用户在收到 push 消息时,能通过 io.rong.push.notification.PushNotificationMessage#getPushData()
方法获取。callback
- 发送消息的回调。参考 IRongCallback.ISendMessageCallback
。public void sendMessage(Message message, java.lang.String pushContent, java.lang.String pushData, IRongCallback.ISendMessageCallback callback)
通过 IRongCallback.ISendMessageCallback
中的方法回调发送的消息状态及消息体。
注意:1 秒钟发送消息不能超过 5 条。
message
- 将要发送的消息体。pushContent
- 当下发远程推送消息时,在通知栏里会显示这个字段。
如果发送的是自定义消息,该字段必须填写,否则无法收到远程推送消息。
如果发送 sdk 中默认的消息类型,例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg,则不需要填写,默认已经指定。pushData
- 远程推送附加信息。如果设置该字段,用户在收到远程推送消息时,能通过 io.rong.push.notification.PushNotificationMessage#getPushData()
方法获取。callback
- 发送消息的回调,参考 IRongCallback.ISendMessageCallback
。public void sendMessage(Message message, java.lang.String pushContent, java.lang.String pushData, SendMessageOption option, IRongCallback.ISendMessageCallback callback)
通过 IRongCallback.ISendMessageCallback
中的方法回调发送的消息状态及消息体。
注意:1 秒钟发送消息不能超过 5 条。
message
- 要发送的消息体。pushContent
- 当下发远程推送消息时,在通知栏里会显示这个字段。
如果发送的是自定义消息,该字段必须填写,否则无法收到远程推送消息。
如果发送 sdk 中默认的消息类型,例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg,则不需要填写,默认已经指定。pushData
- 远程推送附加信息。如果设置该字段,用户在收到远程推送消息时,能通过 io.rong.push.notification.PushNotificationMessage#getPushData()
方法获取。option
- 发送消息附加选项,目前仅支持设置 isVoIPPush,如果对端设备是 iOS,设置 isVoIPPush 为 True,会走 VoIP 通道推送 Push。callback
- 发送消息的回调,参考 IRongCallback.ISendMessageCallback
。public void sendDirectionalMessage(Conversation.ConversationType type, java.lang.String targetId, MessageContent content, java.lang.String[] userIds, java.lang.String pushContent, java.lang.String pushData, IRongCallback.ISendMessageCallback callback)
此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。
通过 IRongCallback.ISendMessageCallback
中的方法回调发送的消息状态及消息体。
此方法只能发送非多媒体消息,多媒体消息如ImageMessage
FileMessage
或其他继承自 MediaMessageContent
的消息须调用
sendDirectionalMediaMessage(Message, String[], String, String, IRongCallback.ISendMediaMessageCallback)
如果您使用 IMLib,可以使用此方法发送定向消息;如果您使用 IMKit,请使用 RongIM 中的同名方法发送定向消息,否则不会自动更新 UI。
type
- 会话类型。targetId
- 会话 id。只能是讨论组 id 或群组 id。content
- 消息内容,例如 TextMessage
, ImageMessage
。pushContent
- 当下发远程推送消息时,在通知栏里会显示这个字段。
如果发送的是自定义消息,该字段必须填写,否则无法收到远程推送消息。
如果发送 SDK 中默认的消息类型,例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg,则不需要填写,默认已经指定。pushData
- 远程推送附加信息。如果设置该字段,用户在收到远程推送消息时,能通过 io.rong.push.notification.PushNotificationMessage#getPushData()
方法获取。userIds
- 讨论组或群组会话中将会接收到此消息的用户列表。callback
- 发送消息的回调,参考 IRongCallback.ISendMessageCallback
。public void sendImageMessage(Conversation.ConversationType type, java.lang.String targetId, MessageContent content, java.lang.String pushContent, java.lang.String pushData, RongIMClient.SendImageMessageCallback callback)
如果您使用IMLib,可以使用此方法发送图片消息; 如果您使用 IMKit,请使用 RongIM 中的同名方法发送图片消息,否则不会自动更新 UI。
type
- 会话类型。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id 或聊天室 id。content
- 消息内容,例如 TextMessage
, ImageMessage
。pushContent
- 当下发远程推送消息时,在通知栏里会显示这个字段。
如果发送的是自定义消息,该字段必须填写,否则无法收到远程推送消息。
如果发送 SDK 中默认的消息类型,例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg,则不需要填写,默认已经指定。pushData
- 远程推送附加信息。如果设置该字段,用户在收到远程推送消息时,能通过 io.rong.push.notification.PushNotificationMessage#getPushData()
方法获取。callback
- 发送消息的回调。参考 RongIMClient.SendImageMessageCallback
。public void sendImageMessage(Message message, java.lang.String pushContent, java.lang.String pushData, RongIMClient.SendImageMessageCallback callback)
如果您使用IMLib,可以使用此方法发送图片消息;如果您使用 IMKit,请使用 RongIM 中的同名方法发送图片消息,否则不会自动更新 UI。
message
- 发送消息的实体。pushContent
- 当下发远程推送消息时,在通知栏里会显示这个字段。
如果发送的是自定义消息,该字段必须填写,否则无法收到远程推送消息。
如果发送 sdk 中默认的消息类型,例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg,则不需要填写,默认已经指定。pushData
- 远程推送附加信息。如果设置该字段,用户在收到远程推送消息时,能通过 io.rong.push.notification.PushNotificationMessage#getPushData()
方法获取。callback
- 发送消息的回调。参考 RongIMClient.SendImageMessageCallback
。public void sendImageMessage(Message message, java.lang.String pushContent, java.lang.String pushData, RongIMClient.SendImageMessageWithUploadListenerCallback callback)
该方法将图片上传到自己的服务器发送,同时更新图片状态。
使用该方法在上传图片时,会回调 RongIMClient.SendImageMessageWithUploadListenerCallback
此回调中会携带 RongIMClient.UploadImageStatusListener
对象,使用者只需要调用其中的
RongIMClient.UploadImageStatusListener.update(int)
更新进度
RongIMClient.UploadImageStatusListener.success(Uri)
更新成功状态,并告知上传成功后的图片地址
RongIMClient.UploadImageStatusListener.error()
更新失败状态
message
- 发送消息的实体。pushContent
- 当下发远程推送消息时,在通知栏里会显示这个字段。
如果发送的是自定义消息,该字段必须填写,否则无法收到远程推送消息。
如果发送 SDK 中默认的消息类型,例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg,则不需要填写,默认已经指定。pushData
- 远程推送附加信息。如果设置该字段,用户在收到远程推送消息时,能通过 io.rong.push.notification.PushNotificationMessage#getPushData()
方法获取。callback
- 发送消息的回调,回调中携带 RongIMClient.UploadImageStatusListener
对象,用户调用该对象中的方法更新状态。public void downloadMedia(Conversation.ConversationType conversationType, java.lang.String targetId, RongIMClient.MediaType mediaType, java.lang.String imageUrl, RongIMClient.DownloadMediaCallback callback)
如果本地缓存中包含此文件,则从本地缓存中直接获取,否则将从服务器端下载。
conversationType
- 会话类型。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id 或聊天室 id。mediaType
- 文件类型。imageUrl
- 文件的 URL 地址。callback
- 下载文件的回调。public void downloadMediaMessage(Message message, IRongCallback.IDownloadMediaMessageCallback callback)
message
- 媒体消息(FileMessage,SightMessage,GIFMessage, HQVoiceMessage等)。callback
- 下载文件的回调。参考 IRongCallback.IDownloadMediaMessageCallback
。public void downloadMediaFile(java.lang.String fileUniqueId, java.lang.String fileUrl, java.lang.String fileName, java.lang.String path, IRongCallback.IDownloadMediaFileCallback callback)
支持断点续传,对应的暂停下载须调用 pauseDownloadMediaFile(String, OperationCallback)
。
fileUniqueId
- 文件唯一标识, 与 pauseDownloadMediaFile(String, OperationCallback)
第一个参数对应fileUrl
- 文件下载地址fileName
- 文件名path
- 文件下载保存目录,如果是 targetVersion 29 为目标,由于访问权限原因,建议使用 context.getExternalFilesDir() 方法保存到私有目录callback
- 下载文件的回调public void cancelSendMediaMessage(Message message, RongIMClient.OperationCallback callback)
message
- 多媒体文件消息。callback
- 取消发送多媒体文件时的回调。public void cancelDownloadMediaMessage(Message message, RongIMClient.OperationCallback callback)
message
- 多媒体文件消息。callback
- 取消下载多媒体文件时的回调。public void pauseDownloadMediaMessage(Message message, RongIMClient.OperationCallback callback)
message
- 多媒体文件消息。callback
- 暂停下载多媒体文件时的回调。public void pauseDownloadMediaFile(java.lang.String fileUniqueId, RongIMClient.OperationCallback callback)
fileUniqueId
- 文件的唯一标识。
须与 downloadMediaFile(String, String, String, String, IRongCallback.IDownloadMediaFileCallback)
第一个参数对应callback
- 暂停下载多媒体文件时的回调。public void getConversationNotificationStatus(Conversation.ConversationType conversationType, java.lang.String targetId, RongIMClient.ResultCallback<Conversation.ConversationNotificationStatus> callback)
注意:不支持聊天室!
conversationType
- 会话类型,不支持聊天室(聊天室默认是不接受会话消息提醒的)。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id。callback
- 获取消息提醒状态的回调。Conversation.ConversationNotificationStatus
public void setConversationNotificationStatus(Conversation.ConversationType conversationType, java.lang.String targetId, Conversation.ConversationNotificationStatus notificationStatus, RongIMClient.ResultCallback<Conversation.ConversationNotificationStatus> callback)
注意:不支持聊天室!
conversationType
- 会话类型。不支持聊天室类型,因为聊天室默认就是不接受消息提醒的。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id。notificationStatus
- 会话设置的消息提醒状态 Conversation.ConversationNotificationStatus
。callback
- 设置状态的回调。public void setDiscussionInviteStatus(java.lang.String discussionId, RongIMClient.DiscussionInviteStatus status, RongIMClient.OperationCallback callback)
discussionId
- 讨论组 id。status
- 讨论组邀请状态,默认为开放。参考 RongIMClient.DiscussionInviteStatus
。callback
- 设置权限的回调。public java.lang.String getCurrentUserId()
public long getDeltaTime()
消息发送成功后,SDK 与服务器同步时间,消息所在数据库中存储的时间就是服务器时间。 System.currentTimeMillis() - getDeltaTime() 可以获取服务器当前时间。
public void getChatRoomInfo(java.lang.String chatRoomId, int defMemberCount, ChatRoomInfo.ChatRoomMemberOrder order, RongIMClient.ResultCallback<ChatRoomInfo> callback)
chatRoomId
- 聊天室 id。defMemberCount
- 需要获取的成员信息的数量(目前获取到的聊天室信息中仅包含不多于 20人 的成员信息,即 0 <= count <=
20,传入 0 获取到的聊天室信息将或仅包含成员总数,不包含具体的成员列表)。order
- 按照何种顺序返回聊天室成员信息。升序返回最早加入的用户列表; 降序返回最晚加入的用户列表。ChatRoomInfo.ChatRoomMemberOrder
callback
- 状态回调。参考 ChatRoomInfo
。public void joinChatRoom(java.lang.String chatRoomId, int defMessageCount, RongIMClient.OperationCallback callback)
如果聊天室不存在,SDK 会创建聊天室并加入,如果已存在,则直接加入。
可以通过传入的 defMessageCount 设置加入聊天室成功之后需要获取的历史消息数量。
-1 表示不获取任何历史消息,0 表示不特殊设置而使用 sdk 默认的设置(默认为获取 10 条),defMessageCount(0 < defMessageCount <= 50) 为获取的消息数量,最大值为 50。
chatRoomId
- 聊天室 id。defMessageCount
- 进入聊天室拉取消息数量,-1 时不拉取任何消息,0 时拉取 10 条消息,最多只能拉取 50 条。
(加入聊天室时会传本地最后一条消息的时间戳,拉取的是这个时间戳之后的消息。比如:这个时间戳之后有 3 条消息,defMessageCount传 10,也只能拉取 3 条消息。)callback
- 状态回调。public void joinExistChatRoom(java.lang.String chatRoomId, int defMessageCount, RongIMClient.OperationCallback callback)
如果聊天室不存在,则加入失败。加入聊天室时,可以设置拉取聊天室消息数目。
chatRoomId
- 聊天室 id。defMessageCount
- 进入聊天室拉取消息数目,-1 时不拉取任何消息,0 时拉取 10 条消息,最多只能拉取 40 条。callback
- 状态回调。public void quitChatRoom(java.lang.String chatRoomId, RongIMClient.OperationCallback callback)
chatRoomId
- 聊天室 id。callback
- 状态回调。public void clearConversations(RongIMClient.ResultCallback callback, Conversation.ConversationType... conversationTypes)
callback
- 是否清空成功的回调。conversationTypes
- 需要清空的会话类型列表。public void addToBlacklist(java.lang.String userId, RongIMClient.OperationCallback callback)
将对方加入黑名单后,对方再发消息时,提示"您的消息已经发出, 但被对方拒收"。但您仍然可以给对方发送消息。
userId
- 用户 id。callback
- 加到黑名单回调。public void removeFromBlacklist(java.lang.String userId, RongIMClient.OperationCallback callback)
userId
- 用户 id。callback
- 移除黑名单回调。public void getBlacklistStatus(java.lang.String userId, RongIMClient.ResultCallback<RongIMClient.BlacklistStatus> callback)
userId
- 用户 id。callback
- 获取用户是否在黑名单回调。RongIMClient.BlacklistStatus
public void getBlacklist(RongIMClient.GetBlacklistCallback callback)
callback
- 获取黑名单回调。参考 RongIMClient.GetBlacklistCallback
。public void searchPublicService(RongIMClient.SearchType searchType, java.lang.String keywords, RongIMClient.ResultCallback<PublicServiceProfileList> callback)
searchType
- 搜索类型枚举。参考 RongIMClient.SearchType
。keywords
- 搜索关键字。callback
- 搜索结果回调。PublicServiceProfileList
public void searchPublicServiceByType(Conversation.PublicServiceType publicServiceType, RongIMClient.SearchType searchType, java.lang.String keywords, RongIMClient.ResultCallback<PublicServiceProfileList> callback)
publicServiceType
- 公众服务类型。 参考 Conversation.PublicServiceType
。searchType
- 搜索类型枚举。参考 RongIMClient.SearchType
。keywords
- 搜索关键字。callback
- 搜索结果回调。PublicServiceProfileList
public void subscribePublicService(Conversation.PublicServiceType publicServiceType, java.lang.String publicServiceId, RongIMClient.OperationCallback callback)
publicServiceType
- 公众服务类型。参考 Conversation.PublicServiceType
。publicServiceId
- 公共服务 id。callback
- 订阅公众号回调。public void unsubscribePublicService(Conversation.PublicServiceType publicServiceType, java.lang.String publicServiceId, RongIMClient.OperationCallback callback)
publicServiceType
- 公众服务类型。参考 Conversation.PublicServiceType
。publicServiceId
- 公共服务 id。callback
- 取消订阅公众号回调。public void getPublicServiceProfile(Conversation.PublicServiceType publicServiceType, java.lang.String publicServiceId, RongIMClient.ResultCallback<PublicServiceProfile> callback)
publicServiceType
- 公众服务类型。参考 Conversation.PublicServiceType
。publicServiceId
- 公共服务 id。callback
- 公共账号信息回调。PublicServiceProfile
public void getPublicServiceList(RongIMClient.ResultCallback<PublicServiceProfileList> callback)
callback
- 获取己关注公共账号列表回调。PublicServiceProfileList
public void setNotificationQuietHours(java.lang.String startTime, int spanMinutes, RongIMClient.OperationCallback callback)
startTime
- 起始时间 格式 HH:MM:SS。spanMinutes
- 设置的免打扰结束时间距离起始时间的间隔分钟数。 0 < spanMinutes < 1440。
比如,您设置的起始时间是 00:00, 结束时间为 23:59,则 spanMinutes 为 23 * 60 + 59 = 1339 分钟。callback
- 消息通知免打扰时间回调。public void removeNotificationQuietHours(RongIMClient.OperationCallback callback)
callback
- 移除消息通知免打扰时间回调。public void clearMessagesUnreadStatus(Conversation.ConversationType conversationType, java.lang.String targetId, long timestamp, RongIMClient.OperationCallback callback)
注意:不支持聊天室!
conversationType
- 会话类型,不支持聊天室。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id。timestamp
- 该会话已阅读的最后一条消息的发送时间戳。参考 Message.getSentTime()
。callback
- 清除是否成功的回调。public long getSendTimeByMessageId(int messageId)
messageId
- 指定的消息 id。public void getNotificationQuietHours(RongIMClient.GetNotificationQuietHoursCallback callback)
callback
- 消息通知免打扰时间回调。参考 RongIMClient.GetNotificationQuietHoursCallback
。public void getMessageByUid(java.lang.String uid, RongIMClient.ResultCallback<Message> callback)
uid
- 全局唯一 id(服务器消息唯一 id)。callback
- 获取消息的回调。public void switchAppKey(java.lang.String appKey)
当一个应用对应多个环境, 即多个 appKey 时, 调用此方法实现融云 SDK 热切换。
注意: 调用此方法后, 还需要再次调用 init(Context, String)
和
connect(String, ConnectCallback)
,传入新 appKey 对应的 token,重新初始化和连接。
appKey
- 应用的另一个 appKey。public RealTimeLocationConstant.RealTimeLocationErrorCode getRealTimeLocation(Conversation.ConversationType conversationType, java.lang.String targetId)
使用时,每次进入会话,获取该会话对应的实例,以此判断位置共享业务是否可用或者正在进行中。
如果获取实例失败,返回 error code,对应具体的失败信息。
如果返回成功,使用者可以设置监听,发起位置共享。
如果返回正在进行中,则是对方已发起位置共享,使用者可以设置监听,加入。
如果返回其他失败信息,使用者可以据此做出相应的提示。
conversationType
- 发起位置共享的所在会话的会话类型。targetId
- 发起位置共享的会话 id。RealTimeLocationConstant.RealTimeLocationErrorCode
。public RealTimeLocationConstant.RealTimeLocationErrorCode startRealTimeLocation(Conversation.ConversationType conversationType, java.lang.String targetId)
conversationType
- 发起位置共享的会话类型。targetId
- 发起位置共享的会话 id。RealTimeLocationConstant.RealTimeLocationErrorCode
。public RealTimeLocationConstant.RealTimeLocationErrorCode joinRealTimeLocation(Conversation.ConversationType conversationType, java.lang.String targetId)
conversationType
- 位置共享的会话类型。targetId
- 位置共享的会话 id。RealTimeLocationConstant.RealTimeLocationErrorCode
。public void quitRealTimeLocation(Conversation.ConversationType conversationType, java.lang.String targetId)
conversationType
- 位置共享的会话类型。targetId
- 位置共享的会话 id。public java.util.List<java.lang.String> getRealTimeLocationParticipants(Conversation.ConversationType conversationType, java.lang.String targetId)
conversationType
- 位置共享的会话类型。targetId
- 位置共享的会话 id。public RealTimeLocationConstant.RealTimeLocationStatus getRealTimeLocationCurrentState(Conversation.ConversationType conversationType, java.lang.String targetId)
conversationType
- 位置共享的会话类型。targetId
- 位置共享的会话 id。RealTimeLocationConstant.RealTimeLocationStatus
public void addRealTimeLocationListener(Conversation.ConversationType conversationType, java.lang.String targetId, RongIMClient.RealTimeLocationListener listener)
conversationType
- 位置共享的会话类型。targetId
- 位置共享的会话 id。listener
- 位置共享监听。public void removeRealTimeLocationObserver(Conversation.ConversationType conversationType, java.lang.String targetId)
conversationType
- 位置共享的会话类型。targetId
- 位置共享的会话 id。public void updateRealTimeLocationStatus(Conversation.ConversationType conversationType, java.lang.String targetId, double latitude, double longitude, RealTimeLocationType realTimeLocationType)
conversationType
- 位置共享的会话类型。targetId
- 位置共享的会话 id。latitude
- 纬度longitude
- 经度realTimeLocationType
- 实时共享位置类型RealTimeLocationType
public java.util.Collection<TypingStatus> getTypingUserListFromConversation(Conversation.ConversationType conversationType, java.lang.String targetId)
conversationType
- 会话类型targetId
- 会话 idpublic void sendTypingStatus(Conversation.ConversationType conversationType, java.lang.String targetId, java.lang.String typingContentType)
conversationType
- 会话类型targetId
- 会话 idtypingContentType
- 正在输入的消息的类型名,
typingContentType 为用户当前正在编辑的消息类型名,即 Message
中 Message.getObjectName()
的返回值。
如文本消息,传类型名 "RC:TxtMsg"。public static void setTypingStatusListener(RongIMClient.TypingStatusListener listener)
当输入状态发生变化时,回调 RongIMClient.TypingStatusListener.onTypingStatusChanged(Conversation.ConversationType, String, Collection)
。
对于单聊而言,当对方正在输入时,监听会触发一次;当对方不处于输入状态时,该监听还会触发一次,但回调里输入用户列表为空。
listener
- 输入状态监听器public static void setRCLogInfoListener(RongIMClient.RCLogInfoListener listener)
注意:需要在 connect 之前调用!
listener
- Log 输出监听器public void sendReadReceiptMessage(Conversation.ConversationType conversationType, java.lang.String targetId, long timestamp)
使用 IMLib 可以注册监听 setReadReceiptListener(io.rong.imlib.RongIMClient.ReadReceiptListener)
;使用 IMkit 直接设置 rc_config.xml 中 rc_read_receipt
为 true。
conversationType
- 会话类型(只适用 PRIVATE 和 ENCRYPTED 类型)targetId
- 会话 idtimestamp
- 该会话中已读的最后一条消息的发送时间戳Message.getSentTime()
public void sendReadReceiptMessage(Conversation.ConversationType conversationType, java.lang.String targetId, long timestamp, IRongCallback.ISendMessageCallback callback)
使用 IMLib 可以注册监听 setReadReceiptListener(io.rong.imlib.RongIMClient.ReadReceiptListener)
;使用 IMkit 直接设置 rc_config.xml 中 rc_read_receipt
为 true。
conversationType
- 会话类型(只适用 PRIVATE 和 ENCRYPTED 类型)targetId
- 会话 idtimestamp
- 会话中已读的最后一条消息的发送时间戳 Message.getSentTime()
callback
- 发送已读回执消息的回调public static void setReadReceiptListener(RongIMClient.ReadReceiptListener listener)
当收到消息回执时回调 RongIMClient.ReadReceiptListener.onReadReceiptReceived(io.rong.imlib.model.Message)
。
listener
- 消息回执监听器public void setOnReceiveDestructionMessageListener(RongIMClient.OnReceiveDestructionMessageListener listener)
listener
- 阅后即焚消息接收监听器public void startCustomService(java.lang.String kefuId, ICustomServiceListener listener, CSCustomServiceInfo customServiceInfo)
kefuId
- 客服 id,用户去融云开发者后台申请开通后获得客服 id。listener
- 客服监听,监听客服的状态 ICustomServiceListener
。customServiceInfo
- 客服用户信息,包括用户基本信息,用户联系信息以及请求信息。
其中 nickName 不能为空, 如果为空,则上传当前用户 userId。CSCustomServiceInfo
public void selectCustomServiceGroup(java.lang.String kefuId, java.lang.String groupId)
kefuId
- 客服 idgroupId
- 分组 idpublic void switchToHumanMode(java.lang.String kefuId)
切换的结果需要在 ICustomServiceListener.onModeChanged(CustomServiceMode)
方法回调中处理。
如果客服没有分组, 则直接切人工模式;如果客服有分组,那么需要在回调ICustomServiceListener.onSelectGroup(List)
中去弹出分组选择窗口并选择分组,之后在这个回调中调用 selectCustomServiceGroup(String, String)
根据客服 id 和 分组 id 切换到人工模式。
客服模式 CustomServiceMode
分为无服务、机器人模式、人工模式、机器人优先模式和人工优先模式。
kefuId
- 客服 id,用户去融云开发者后台申请开通后获得客服 id。public void evaluateCustomService(java.lang.String kefuId, boolean isRobotResolved, java.lang.String knowledgeId)
当建立客服连接时,返回的 CustomServiceConfig.CSEvaType
为 CustomServiceConfig.CSEvaType.EVA_SEPARATELY
时,调用此方法对人工客服进行评价。
kefuId
- 客服 id,用户去融云开发者后台申请开通后获得客服 id。isRobotResolved
- robot 客服是否解决了问题。true
解决 ,false
未解决。knowledgeId
- 机器人评价的消息 id,同时满足以下 4 个条件,此参数有效,其余情况可以传空字符串。
当参数有效时, 取出 4 中描述的 “sid” 对应的值就是需要传入的 knowledgeId:
1.机器人模式
2.新收到的消息,不是从数据库中加载的历史消息
3.CustomServiceConfig
的 CustomServiceConfig.robotSessionNoEva
为 true,
CustomServiceConfig
是客服启动成功后的回调 onSuccess() 带回的参数 ICustomServiceListener
4.MessageContent 的 Extra 中有 “robotEva” 和 “sid” 两个字段
public void evaluateCustomService(java.lang.String kefuId, int source, java.lang.String suggest, java.lang.String dialogId)
当建立客服连接时,返回的 CustomServiceConfig.CSEvaType
为 CustomServiceConfig.CSEvaType.EVA_SEPARATELY
时,调用此方法对人工客服进行评价。
kefuId
- 客服 id,用户去融云开发者后台申请开通后获得客服 id。source
- 星级,范围 1-5,5 为最高,1 为最低。suggest
- 客户的针对人工客服的意见和建议。dialogId
- 会话 id。客服后台主动拉评价的时候这个参数有效,其余情况传空字符串即可。
客服主动拉评价的时候, 会走 ICustomServiceListener
的 ICustomServiceListener.onPullEvaluation(String)
回调,并带回 dialogId。public void evaluateCustomService(java.lang.String kefuId, int source, CustomServiceConfig.CSEvaSolveStatus resolvestatus, java.lang.String tagText, java.lang.String suggest, java.lang.String dialogId, java.lang.String extra)
当建立客服连接时,返回的 CustomServiceConfig.CSEvaType
为 CustomServiceConfig.CSEvaType.EVA_SEPARATELY
时,调用此方法对人工客服进行评价。
kefuId
- 客服 id,用户去融云开发者后台申请开通后获得客服 id。source
- 星级,范围 1-5,5 为最高,1 为最低。resolvestatus
- 解决状态 CustomServiceConfig.CSEvaSolveStatus
。tagText
- 5 星以下标签,以","分隔。suggest
- 客户的针对人工客服的意见和建议。dialogId
- 会话 id。客服后台主动拉评价的时候这个参数有效,其余情况传空字符串即可。
客服主动拉评价的时候, 会走 ICustomServiceListener
的 ICustomServiceListener.onPullEvaluation(String)
回调,并带回 dialogId。extra
- 预留扩展字段,可以传 null。public void evaluateCustomService(java.lang.String kefuId, int source, CustomServiceConfig.CSEvaSolveStatus solveStatus, java.lang.String suggest, java.lang.String dialogId)
当建立客服连接时,返回的 CustomServiceConfig.CSEvaType
为 CustomServiceConfig.CSEvaType.EVA_UNIFIED
时,调用此方法进行评价。
kefuId
- 客服 id,用户去融云开发者后台申请开通后获得客服 id。source
- 星级,范围 1-5,5 为最高,1 为最低。solveStatus
- 问题解决状态 CustomServiceConfig.CSEvaSolveStatus
。如果没有解决状态,此处可以任意传值,SDK 不做处理。suggest
- 客户的针对人工客服的意见和建议。dialogId
- 会话 id。客服后台主动拉评价的时候这个参数有效,其余情况传空字符串即可。
客服主动拉评价的时候。 会走 ICustomServiceListener
的 ICustomServiceListener.onPullEvaluation(String)
回调,并带回 dialogId。public void leaveMessageCustomService(java.lang.String kefuId, java.util.Map<java.lang.String,java.lang.String> contentMap, RongIMClient.OperationCallback operationCallback)
kefuId
- 客服 id,用户去融云开发者后台申请开通后获得客服 id。contentMap
- 留言内容。该 map 的 key 是 CSLMessageItem.getName()
的值, CSLMessageItem
是在启动客服时通过
CustomServiceConfig.leaveMessageNativeInfo
根据客服后台的留言配置返回的信息。operationCallback
- 留言是否成功的回调。public void stopCustomService(java.lang.String kefuId)
kefuId
- 客服 id,用户在融云开发者后台申请开通后获得客服 id。public void setCustomServiceHumanEvaluateListener(CustomServiceManager.OnHumanEvaluateListener listener)
当人工评价有标签等配置时,在回调中返回配置。
listener
- 人工客服评价监听public static void setServerInfo(java.lang.String naviServer, java.lang.String fileServer)
可以支持设置 http://cn.xxx.com 或 https://cn.xxx.com 或 cn.xxx.com,
如果设置成 cn.xxx.com,SDK 会组装成 http:// 协议格式。
支持传入多个导航, 多个导航地址之间须以分号 ; 分隔。
注意:此方法在 init(Context, String)
前使用!
naviServer
- 私有部署的导航服务器地址。fileServer
- 私有部署的媒体服务器地址,即文件和图片的上传地址。使用私有云时必须填写。public static void setStatisticDomain(java.lang.String domain)
配置此地址,SDK 会在初始化时把设备相关信息上传到私有云节点。影响到的功能是开发者后台的广播推送功能,如果私有云客户没有配置该地址,那从后台发推送时,客户端是收不到的。普通的 IM 推送不受影响。
设置数据上传服务器地址。
可以支持设置 http://cn.xxx.com 或者 https://cn.xxx.com 或者 cn.xxx.com。
如果设置成 cn.xxx.com,SDK 会组装成 http:// 协议格式。
domain
- 域名public void recallMessage(Message message, java.lang.String pushContent, RongIMClient.ResultCallback<RecallNotificationMessage> callback)
message
- 被撤回的消息pushContent
- 当下发 push 消息时,在通知栏里会显示这个字段,不设置将使用融云默认推送内容callback
- onSuccess 里回调 RecallNotificationMessage
,IMLib 已经被撤回的消息需用 RecallNotificationMessage
替换,
用户需要在界面上对 RecallNotificationMessage
进行展示。public void getUnreadMentionedMessages(Conversation.ConversationType conversationType, java.lang.String targetId, RongIMClient.ResultCallback<java.util.List<Message>> callback)
conversationType
- 会话类型。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id。callback
- 获取未读 @ 消息的回调。回调里返回的消息列表,按照时间顺序从旧到新。public static void setOnRecallMessageListener(RongIMClient.OnRecallMessageListener listener)
listener
- 撤回消息监听器public void sendMediaMessage(Message message, java.lang.String pushContent, java.lang.String pushData, IRongCallback.ISendMediaMessageCallback callback)
发送前构造 Message
消息实体,消息实体中的 content 必须为多媒体消息。
例如:ImageMessage
、FileMessage
或其他继承自 MediaMessageContent
的消息。
message
- 发送消息的实体。pushContent
- 当下发远程推送消息时,在通知栏里会显示这个字段。
如果发送的是自定义消息,该字段必须填写,否则无法收到远程推送消息。
如果发送 sdk 中默认的消息类型,例如:RC:TxtMsg, RC:VcMsg, RC:ImgMsg,则不需要填写,默认已经指定。pushData
- 远程推送附加信息。如果设置该字段,用户在收到远程推送消息时,能通过 io.rong.push.notification.PushNotificationMessage#getPushData()
方法获取。callback
- 发送消息的回调 RongIMClient.SendMediaMessageCallback
。public void sendDirectionalMediaMessage(Message message, java.lang.String[] userIds, java.lang.String pushContent, java.lang.String pushData, IRongCallback.ISendMediaMessageCallback callback)
向会话中特定的某些用户发送消息,会话中其他用户不会收到消息。
发送前构造 Message
消息实体,消息实体中的 content 必须为多媒体消息。
例如:ImageMessage
、FileMessage
或其他继承自 MediaMessageContent
的消息。
message
- 发送消息的实体。userIds
- 定向接收者 id 数组。pushContent
- 当下发远程推送消息时,在通知栏里会显示这个字段。
如果发送的是自定义消息,该字段必须填写,否则无法收到远程推送消息。
如果发送 SDK 中默认的消息类型,例如: RC:TxtMsg, RC:VcMsg, RC:ImgMsg,则不需要填写,默认已经指定。pushData
- 远程推送附加信息。如果设置该字段,用户在收到远程推送消息时,能通过 io.rong.push.notification.PushNotificationMessage#getPushData()
方法获取。callback
- 发送消息的回调 RongIMClient.SendMediaMessageCallback
。public void sendMediaMessage(Message message, java.lang.String pushContent, java.lang.String pushData, IRongCallback.ISendMediaMessageCallbackWithUploader callback)
上传多媒体文件时,会回调 IRongCallback.ISendMediaMessageCallbackWithUploader.onAttached(Message, IRongCallback.MediaMessageUploader)
此回调中携带 IRongCallback.MediaMessageUploader
对象,使用者只需要调用此对象中的
IRongCallback.MediaMessageUploader.update(int)
更新进度
IRongCallback.MediaMessageUploader.success(Uri)
更新成功状态,并告知上传成功后的文件地址
IRongCallback.MediaMessageUploader.error()
更新失败状态
IRongCallback.MediaMessageUploader.cancel()
()} 更新取消状态
message
- 发送消息的实体。pushContent
- 当下发远程推送消息时,在通知栏里会显示这个字段。
如果发送的是自定义消息,该字段必须填写,否则无法收到远程推送消息。
如果发送 SDK 中默认的消息类型,例如: RC:TxtMsg, RC:VcMsg, RC:ImgMsg, RC:FileMsg,则不需要填写,默认已经指定。pushData
- 远程推送附加信息。如果设置该字段,用户在收到远程推送消息时,能通过 io.rong.push.notification.PushNotificationMessage#getPushData()
方法获取。callback
- 发送消息的回调,回调中携带 IRongCallback.MediaMessageUploader
对象,用户调用该对象中的方法更新状态。public void sendReadReceiptRequest(Message message, RongIMClient.OperationCallback callback)
注意:只能对自己发送的消息发起消息已读回执请求。
message
- 需要请求已读回执的消息callback
- 回调函数public void sendReadReceiptResponse(Conversation.ConversationType type, java.lang.String targetId, java.util.List<Message> messageList, RongIMClient.OperationCallback callback)
type
- 会话类型targetId
- 会话 idmessageList
- 会话中需要发送已读回执的消息列表callback
- 回调函数public void syncConversationReadStatus(Conversation.ConversationType type, java.lang.String targetId, long timestamp, RongIMClient.OperationCallback callback)
type
- 会话类型targetId
- 会话 idtimestamp
- 会话中已读的最后一条消息的发送时间戳 Message.getSentTime()
callback
- 回调函数public void setSyncConversationReadStatusListener(RongIMClient.SyncConversationReadStatusListener listener)
listener
- 多端同步会话阅读状态监听 RongIMClient.SyncConversationReadStatusListener
。public void searchConversations(java.lang.String keyword, Conversation.ConversationType[] conversationTypes, java.lang.String[] objectNames, RongIMClient.ResultCallback<java.util.List<SearchConversationResult>> resultCallback)
此方法可快速返回匹配的会话列表,并且会话中包含已匹配的消息数量。通过 {SearchConversationResult#getMatchCount()} 得到。
注意:如果需要自定义消息也能被搜索到,需要在自定义消息中实现 MessageContent.getSearchableWord()
方法。
keyword
- 搜索的关键字。conversationTypes
- 搜索的会话类型。objectNames
- 搜索的消息类型,例如:RC:TxtMsg。resultCallback
- 搜索结果回调。public void searchMessages(Conversation.ConversationType conversationType, java.lang.String targetId, java.lang.String keyword, int count, long beginTime, RongIMClient.ResultCallback<java.util.List<Message>> resultCallback)
注意:如果需要自定义消息也能被搜索到,需要在自定义消息中实现 MessageContent.getSearchableWord()
方法。
conversationType
- 指定的会话类型。targetId
- 指定的会话 id。keyword
- 搜索的关键字。count
- 返回的搜索结果数量, 传 0 时会返回所有搜索到的消息, 非 0 时,逐页返回。beginTime
- 查询 beginTime 之前的消息, 传 0 时从最新消息开始搜索,从该时间往前搜索。resultCallback
- 搜索结果回调。public void searchMessagesByUser(Conversation.ConversationType conversationType, java.lang.String targetId, java.lang.String userId, int count, long beginTime, RongIMClient.ResultCallback<java.util.List<Message>> resultCallback)
注意:如果需要自定义消息也能被搜索到,需要在自定义消息中实现 MessageContent.getSearchableWord()
方法。
conversationType
- 指定的会话类型。targetId
- 指定的会话 id。userId
- 用户 id。count
- 返回的搜索结果数量( 0 < count <= 100),如果 count > 100,则返回 100。beginTime
- 查询记录的起始时间, 传 0 时从最新消息开始搜索,从该时间往前搜索。resultCallback
- 搜索结果回调。public void getHistoryMessages(Conversation.ConversationType conversationType, java.lang.String targetId, long sentTime, int before, int after, RongIMClient.ResultCallback<java.util.List<Message>> resultCallback)
before
数量和 after
数量的消息。
返回的消息列表中会包含指定的消息。消息列表时间顺序从新到旧。
conversationType
- 指定的会话类型。targetId
- 指定的会话 id。sentTime
- 指定消息的发送时间,不能为 0。before
- 指定消息的前部分消息数量。after
- 指定消息的后部分消息数量。resultCallback
- 搜索结果回调。上拉加载时,返回数据中包含当前消息;例:当前消息 id 为 500, before = 0 after = 10,返回 510 - 500 ,按消息 id 倒序。
public void getVendorToken(RongIMClient.ResultCallback<java.lang.String> resultCallback)
第三方厂商通过使用此接口获取 token,然后与厂商的注册信息一起去融云服务器做认证。
resultCallback
- 请求回调。public void setPushLanguage(RongIMClient.PushLanguage language, RongIMClient.OperationCallback callback)
注意:此功能需要从服务端开启用户设置功能。
language
- 远程推送语言类型,RongIMClient.PushLanguage
。callback
- 执行操作的回调public void setPushLanguageCode(java.lang.String language, RongIMClient.OperationCallback callback)
language
- 通过 SDK 设置的语言环境,语言缩写内容格式为 (ISO-639 Language Code)_(ISO-3166 Country Codes),
如:zh_CN。目前融云支持的内置推送语言为 zh_CN、en_US、ar_SAcallback
- 执行操作的回调public void setPushContentShowStatus(boolean showStatus, RongIMClient.OperationCallback callback)
注意:此功能需要从服务端开启用户设置功能。
showStatus
- 是否显示 远程推送内容, @code true} 显示 , false
不显示。callback
- 回调public void setPushReceiveStatus(boolean receiveStatus, RongIMClient.OperationCallback callback)
前提:移动端未在线,Web 、MAC/PC 终端在线,移动端是否接收远程推送。
注意:此功能需要从服务端开启用户设置功能。
receiveStatus
- 是否接收远程推送。 true
接收, false
不接收。callback
- 回调public void getPushLanguage(RongIMClient.ResultCallback<RongIMClient.PushLanguage> callback)
callback
- 获取远程推送语言设置回调, RongIMClient.PushLanguage
。public void getPushContentShowStatus(RongIMClient.ResultCallback<java.lang.Boolean> callback)
callback
- 获取是否显示远程推送内容详情回调,true
显示远程推送内容详情, false
不显示远程推送内容详情。public void getPushReceiveStatus(RongIMClient.ResultCallback<java.lang.Boolean> callback)
前提: 移动端不在线,Web 、MAC/PC 终端在线,移动端是否接收远程推送。
callback
- 获取是否接收远程推送的设置回调,true
接收远程推送 , false
不接收远程推送。public void getOfflineMessageDuration(RongIMClient.ResultCallback<java.lang.String> callback)
callback
- 获取离线消息存储时间回调public void setOfflineMessageDuration(int duration, RongIMClient.ResultCallback<java.lang.Long> callback)
注意:该功能需要客户提工单,在服务端开通此功能后,客户端调用该方法才生效。
duration
- 离线消息补偿时间,范围【1~7 天】。callback
- 回调public void setAppVer(java.lang.String appVer)
注意:需在 init(Context)
之后调用。
appVer
- 用户版本信息。public void supportResumeBrokenTransfer(java.lang.String url, RongIMClient.ResultCallback<java.lang.Boolean> callback)
url
- 文件 Urlcallback
- 回调public void getTheFirstUnreadMessage(Conversation.ConversationType conversationType, java.lang.String targetId, RongIMClient.ResultCallback<Message> callback)
conversationType
- 会话类型targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id 或聊天室 id。callback
- 回调public boolean isFileDownloading(int messageId)
注意:此方法只适用断点续传下载。
messageId
- 消息 idpublic boolean isFileDownloading(java.lang.String uid)
注意:此方法只适用断点续传下载。
uid
- 文件 uid,文件的唯一识别标志public void setMessageReadTime(long messageId, long timestamp, RongIMClient.OperationCallback callback)
messageId
- 消息 idtimestamp
- 消息时间戳callback
- 设置消息已读的回调public void startEncryptedSession(java.lang.String targetId)
targetId
- 会话对方的 userIdpublic void quitEncryptedSession(java.lang.String targetId)
targetId
- 存储 encConversation 的标识(encId + ;;; + 对方 UserId )。public boolean clearEncryptedConversations()
true
成功, false
失败。public int getEncryptedSessionStatus(java.lang.String targetId)
参考 RCEncryptedSession.RCEncryptedSessionStatus
。
targetId
- 存储 encConversation 的标识(encId + ;;; + 对方 UserId )。public java.util.List<RCEncryptedSession> getAllEncryptedConversations()
public int getVideoLimitTime()
public int getGIFLimitSize()
public void setReconnectKickEnable(boolean enable)
用户没有开通多设备登录功能的前提下,同一个账号在一台新设备上登录的时候,会把这个账号在之前登录的设备上踢出。
由于 SDK 有断线重连功能,存在下面情况:
用户在 A 设备登录,A 设备网络不稳定,没有连接成功,SDK 启动重连机制。
用户此时又在 B 设备登录,B 设备连接成功。
A 设备网络稳定之后,用户在 A 设备连接成功,B 设备被踢出。
这个接口就是为这种情况加的。
设置 enable 为 true
时,SDK 重连的时候发现此时已有别的设备连接成功,不再强行踢出已有设备,而是踢出重连设备。
注意: 1. 该功能需要提工单,在服务端开通此功能后,客户端调用该方法才生效。
2. 此方法需要在 init(Context)
之前调用。
enable
- 是否踢出重连设备public void appOnStart()
onAppBackgroundChanged(boolean)
)}。
注意:该方法必须在 init(Context)
之后调用。
public void setRLogLevel(int pLevel)
接口及时生效。
pLevel
- 日志等级。需要使用以下值之一: RLog#F
, RLog#E
, RLog#W
,
RLog#I
, RLog#D
, RLog#V
。public void setRLogFileMaxSize(long pSize)
接口及时生效,超过设置大小压缩成 zip 文件存放到本地。
pSize
- 日志文件大小,单位 byte。public void setUploadCallback(RLogReporter.UploadCallback pCallback)
pCallback
- 日志上传回调,错误码请参考 RLogReporter.UploadCallback.ErrorCode
public void uploadRLog()
在 connect(String, ConnectCallback)
成功后调用
public void beginDestructMessage(Message message, RongIMClient.DestructCountDownTimerListener pListener)
message
- 焚烧的消息pListener
- 倒计时回调接口public void stopDestructMessage(Message message)
message
- 取消焚烧的消息。public void setChatRoomEntry(java.lang.String chatRoomId, java.lang.String key, java.lang.String value, boolean sendNotification, boolean autoDelete, java.lang.String notificationExtra, RongIMClient.OperationCallback callback)
key 不存在,增加属性; key 已存在,只能更新当前用户设置的属性值。
注意:必须先开通聊天室状态存储功能。
chatRoomId
- 聊天室 idkey
- 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符。value
- 聊天室属性对应的值,最大长度 4096 个字符。sendNotification
- 是否需要发送通知,如果需要发送通知,SDK 接收通知消息ChatRoomKVNotiMessage
。autoDelete
- 退出后是否删除notificationExtra
- 通知的自定义字段,通知消息 ChatRoomKVNotiMessage
中会包含此字段,最大长度 2 kb。callback
- 设置聊天室属性的回调public void forceSetChatRoomEntry(java.lang.String chatRoomId, java.lang.String key, java.lang.String value, boolean sendNotification, boolean autoDelete, java.lang.String notificationExtra, RongIMClient.OperationCallback callback)
key 不存在,增加属性; key 已存在,更新属性的值。
注意:必须先开通聊天室状态存储功能。
chatRoomId
- 聊天室 idkey
- 聊天室属性名称, Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符。value
- 聊天室属性对应的值,最大长度 4096 个字符。sendNotification
- 是否需要发送通知,如果需要发送通知,SDK 接收通知消息 ChatRoomKVNotiMessage
。autoDelete
- 退出后是否删除notificationExtra
- 通知自定义字段,通知消息 ChatRoomKVNotiMessage
中会包含此字段,最大长度 2 kb。callback
- 设置聊天室属性的回调public void getChatRoomEntry(java.lang.String chatRoomId, java.lang.String key, RongIMClient.ResultCallback<java.util.Map<java.lang.String,java.lang.String>> callback)
注意:必须先开通聊天室状态存储功能。
chatRoomId
- 聊天室 idkey
- 聊天室属性键值callback
- 结果回调监听public void getAllChatRoomEntries(java.lang.String chatRoomId, RongIMClient.ResultCallback<java.util.Map<java.lang.String,java.lang.String>> callback)
注意:必须先开通聊天室状态存储功能。
chatRoomId
- 聊天室 idcallback
- 结果回调监听public void removeChatRoomEntry(java.lang.String chatRoomId, java.lang.String key, java.lang.Boolean sendNotification, java.lang.String notificationExtra, RongIMClient.OperationCallback callback)
注意:
1. 必须先开通聊天室状态存储功能
2. 只有自己设置的属性可以删除
chatRoomId
- 聊天室 idkey
- 聊天室属性键值sendNotification
- 是否需要发送通知,如果需要发送通知,SDK 会收到通知消息 ChatRoomKVNotiMessage
。notificationExtra
- 通知自定义字段,通知消息 ChatRoomKVNotiMessage
中包含此字段,最大长度 2 kb。callback
- 结果回调监听public void forceRemoveChatRoomEntry(java.lang.String chatRoomId, java.lang.String key, java.lang.Boolean sendNotification, java.lang.String notificationExtra, RongIMClient.OperationCallback callback)
注意:必须先开通聊天室状态存储功能。
chatRoomId
- 聊天室 idkey
- 聊天室属性键值sendNotification
- 是否需要发送通知,如果需要发送通知,SDK 会收到通知消息 ChatRoomKVNotiMessage
。notificationExtra
- 通知自定义字段,通知消息 ChatRoomKVNotiMessage
中包含此字段,最大长度 2 kb。callback
- 结果回调监听public void cancelSDKHeartBeat()
public void sendPing()
public void setConversationStatusListener(RongIMClient.ConversationStatusListener listener)
listener
- 会话状态(置顶和免打扰)多端同步监听 RongIMClient.ConversationStatusListener
public void setKVStatusListener(RongIMClient.KVStatusListener listener)
listener
- 聊天室 KV 状态变化的监听 RongIMClient.KVStatusListener
public void setMessageExpansionListener(RongIMClient.MessageExpansionListener listener)
listener
- 消息扩展监听public void updateMessageExpansion(java.util.Map<java.lang.String,java.lang.String> expansion, java.lang.String messageUId, RongIMClient.OperationCallback callback)
每条消息携带扩展信息键值对最大值 300个,单次设置扩展信息键值对最大值 20个
expansion
- 要更新的消息扩展信息键值对,类型是 HashMap;Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,不支持汉字。Value 可以输入空格。messageUId
- 消息 messageUIdcallback
- 更新扩展信息回调public void removeMessageExpansion(java.util.List<java.lang.String> keyArray, java.lang.String messageUId, RongIMClient.OperationCallback callback)
keyArray
- 消息扩展信息中待删除的 key 的列表,类型是 ArrayListmessageUId
- 消息 messageUIdcallback
- 删除消息扩展信息回调