即时通讯 IM API 参考 v1.3.2
Agora Java IM SDK
即时通讯 IM API 参考

即时通讯 IM 服务是一个高度可靠的全球通信平台,支持丰富的消息类型,包括文本、图片、语音、视频、文件、位置、透传以及自定义消息,可使你的用户很方便地进行单聊、群聊或聊天室聊天。即时通讯 IM 服务提供以下类:

  • ChatClient 类是即时通讯 IM SDK的入口,提供各种方法实现即时通讯应用程序的登录和退出登录以及管理 SDK 和 IM 服务器之间的连接。
  • ChatManager 类提供各种方法实现发送和接收消息、管理会话(包括加载和删除会话)以及下载附件。
  • ChatMessage 类定义消息属性。
  • Conversation 类提供会话管理方法。
  • ContactManager 类提供聊天联系人管理方法,例如添加、获取、修改和删除联系人。
  • GroupManager 类提供群组管理方法,例如群组创建和解散以及成员管理。
  • ChatRoomManager 类提供聊天室管理方法,如加入和离开聊天室、获取聊天室列表,以及管理聊天室成员权限。
  • PresenceManager 类提供各种方法用于设置消息推送配置选项。
  • ChatThreadManager 类提供子区管理方法,包括创建和解散子区以及子区成员管理。
  • PushManager 类提供各种方法实现离线推送服务的管理。
  • UserInfoManager 类提供用户属性管理的方法,包括获取和修改用户属性。

在方法调用过程中,SDK 可能会返回错误码。详见错误码

聊天客户端

方法名称 描述
init 初始化 SDK。
loginWithToken 通过用户 ID 和声网 Agora token 登录 IM 服务器。
renewToken 更新 Agora token。
logout 登出 IM 服务器。
getCurrentUser 获取当前登录用户的用户 ID。
isLoggedInBefore 查询是否登录过。
isConnected 检查 SDK 是否连接到 IM 服务器。
isLoggedIn 检查用户是否登录 IM 服务。
setDebugMode 设置是否输出调试信息。
isSdkInited 检查 SDK 是否已完成初始化。
addConnectionListener 设置连接状态监听器。
addLogListener 设置日志回调监听器。
groupManager 获取群组管理类 GroupManager。
pushManager 获取推送管理类 PushManager。
chatroomManager 获取聊天室管理类 ChatRoomManager。
chatManager 获取聊天管理类 ChatManager。
userInfoManager 获取用户信息管理类 UserInfoManager。
contactManager 获取联系人管理类 ContactManager。
presenceManager 获取用户在线状态管理类 PresenceManager。
chatThreadManager 获取子区管理类 ChatThreadManager。
事件 描述
onConnected 成功连接到 IM 服务器时触发的回调。
onDisconnected SDK 与 IM 服务器断开连接时触发的回调。注意断开连接时底层不一定会登出。
onTokenExpired token 过期时触发的回调。
onTokenWillExpire token 即将过期时触发的回调。
onLogout 用户被强制登出 SDK 时触发的回调。
onLog 日志回调。

聊天管理器

方法名称 描述
sendMessage 发送消息。
ackConversationRead 发送会话的已读回执,该方法只针对单聊会话。
ackMessageRead 发送消息的已读回执。
ackGroupMessageRead 发送群消息已读回执。
getConversation 获取指定 ID 的会话对象。
markAllConversationsAsRead 将所有会话都设成已读。
saveMessage 将消息保存到内存和本地数据库。
updateMessage 更新本地消息。
downloadAttachment 下载消息的附件。
downloadThumbnail 下载消息的缩略图。
importMessages 将消息导入本地数据库。
getAllConversations 获取本地当前所有会话。
asyncFetchConversationsFromServer 从服务器获取会话列表。
asyncFetchConversationsFromServer 从服务器分页获取会话列表。
deleteConversation 删除指定会话及其本地历史消息。
deleteConversationFromServer 删除服务端的指定会话及其历史消息。
fetchGroupReadAcks 从服务器分页获取群组消息已读回执详情。
searchMsgFromDB 从本地数据库获取指定会话的一定数量的特定类型的消息。
deleteMessagesBeforeTimestamp 删除指定时间戳之前的本地历史消息。
asyncReportMessage 举报非法消息。
fetchSupportLanguages 获取翻译服务支持的所有语言。
translateMessage 翻译一条文本消息。
asyncAddReaction 添加 Reaction。
asyncRemoveReaction 删除 Reaction。
asyncGetReactionList 获取 Reaction 列表。
asyncGetReactionDetail 获取 Reaction 详细信息。
addMessageListener 注册消息监听器。
addConversationListener 注册会话监听器。
事件 描述
onMessageReceived 收到消息。
onCmdMessageReceived 收到命令消息。
onMessageRead 收到消息的已读回执。
onGroupMessageRead 收到群组消息的已读回执。
onReadAckForGroupMessageUpdated 收到群组消息的读取状态更新。
onMessageDelivered 收到消息的送达回执。
onMessageRecalled 撤回收到的消息。
onReactionChanged 消息的 Reaction 发生变更。
onConversationUpdate 会话发生更新。
onConversationRead 收到会话已读回执。

消息

方法名称 描述
conversationId 会话 ID,取决于会话类型。
getUnreadMsgCount 获取会话中的未读消息数。
markAllMessagesAsRead 将所有未读消息设置为已读。
getAllMsgCount 获取 SDK 本地数据库中会话的全部消息的数量。
isChatThread 查看当前会话是否是子区会话。
loadMoreMsgFromDB 从 SDK 本地数据库中分页加载消息。
getMessage 根据消息 ID 获取已读的消息。
markMessageAsRead 设置指定消息为已读。
getAllMessages 获取该会话当前内存中的所有消息。
removeMessage 删除本地数据库中的一条指定消息。
getLastMessage 获取会话中的最新一条消息。
getLatestMessageFromOthers 获取会话中收到的最新一条消息。
clear 清除会话中的所有消息。
clearAllMessages 清除内存和数据库中指定会话中的消息。
setExtField 设置会话的扩展字段。
getExtField 获取会话的扩展字段。
insertMessage 在本地数据库的会话中插入一条消息。
appendMessage 在本地数据库中会话的尾部插入一条消息。
updateMessage 更新本地数据库的指定消息。
status 获取消息的发送/接收状态。
setStatus 设置消息发送或接收的状态。
getType 获取消息类型。
getBody 获取消息体。
getMsgTime 获取消息的服务器时间戳。
setMsgTime 设置消息的服务器时间戳。
localTime 获取消息的本地时间戳。
setLocalTime 设置消息的本地时间戳。
setIsChatThreadMessage 设置消息是否是子区消息。
isChatThreadMessage 获取消息是否是子区消息。
getChatThread 获取子区概览信息。
createSendMessage 创建一条发送消息。
createReceiveMessage 创建一条接收消息。
createTextSendMessage 创建一条文本发送消息。
createVoiceSendMessage 创建一条语音发送消息。
createImageSendMessage 创建一条图片发送消息。
createVideoSendMessage 创建一条视频发送消息。
createLocationSendMessage 创建一条位置发送消息。
createFileSendMessage 创建一条普通文件发送消息。
setBody (建议方法)设置消息体。
addBody 添加消息体。
getFrom 获取消息发送方的用户 ID。
setFrom 设置消息发送方的用户 ID。
getRecaller 获取消息撤回者的用户 ID。
setTo 设置消息接收方的用户 ID。
getTo 获取消息接收方的用户名。
getMsgId 获取消息的 ID。
setMsgId 设置本地消息 ID。
setMessageStatusCallback 设置消息状态变化的回调。
setAttribute 设置消息扩展属性,为 String 类型。
getStringAttribute 获取消息扩展属性,为 String 类型。
getChatType 获取聊天类型。
setChatType 设置聊天类型。
isAcked 获取对方是否已读。
setAcked 设置对方是否已读。
isDelivered 获取消息是否成功送达。
setDelivered 设置消息是否成功送达。
isUnread 检查消息是否未读。
setUnread 设置消息是否未读。
isListened 获取语音消息是否已听。
setListened 设置语音消息是否已听。
getUserName 获取对端用户的用户 ID。
direct 获取消息方向。
setDirection 设置消息方向。
conversationId 获取会话 ID。
ext 获取消息包含的全部扩展字段。
getMessageReaction 获取 Reaction 列表。
isOnlineState 是否为在线消息,即消息发送时接收方是否在线。
setPriority 设置聊天室消息优先级。
事件 描述
onSuccess 方法成功执行的回调。
onError 发生错误时的回调,详见 Error
onProgress 进度更新的回调。

联系人管理

方法名称 描述
asyncAddContact 添加联系人。
asyncDeleteContact 删除好友。
asyncGetAllContactsFromServer 从服务器获取所有的好友。
asyncAddUserToBlackList 把指定用户加入到黑名单中。
asyncSaveBlackList 上传黑名单列表到服务器。
asyncRemoveUserFromBlackList 将用户从黑名单中移除。
getBlackListUsernames 从本地获取黑名单列表。
asyncGetBlackListFromServer 从服务器获取黑名单列表。
asyncAcceptInvitation 接受加好友的邀请。
asyncDeclineInvitation 拒绝加好友的邀请。
getContactsFromLocal 从数据库获取好友列表。
asyncGetSelfIdsOnOtherPlatform 从服务器获取登录用户在其他设备上登录的 ID。
setContactListener 注册联系人监听。
事件 描述
onContactAdded 增加联系人时回调此方法。
onContactDeleted 删除联系人时回调此方法。被删除的用户收到该回调。
onContactInvited 收到好友邀请。
onFriendRequestAccepted 同意好友请求。发送好友请求的用户收到该事件。
onFriendRequestDeclined 拒绝好友请求。发送好友请求的用户收到该事件。

群组

方法名称 描述
asyncCreateGroup 创建群组。
asyncDestroyGroup 解散群组。
asyncLeaveGroup 当前登录用户退出群组。
asyncJoinGroup 当前登录用户加入公开群。
asyncAddUsersToGroup 向群组中添加新成员。
asyncRemoveUsersFromGroup 从群组中删除成员。
asyncGetGroupFromServer 从服务器获取群组的详细信息。
asyncGetJoinedGroupsFromServer 以分页方式从服务器获取当前用户已加入的群组。
asyncGetPublicGroupsFromServer 以分页方式从服务器获取公开群组。
asyncChangeGroupName 修改群组名称。
asyncChangeGroupDescription 修改群描述。
asyncAcceptInvitation 接受入群邀请。
asyncDeclineInvitation 拒绝入群邀请。
asyncAcceptApplication 批准入群申请。
asyncDeclineApplication 拒绝入群申请。
asyncInviteUser 群成员邀请用户入群。
asyncApplyJoinToGroup 申请加入群组。
asyncBlockGroupMessage 屏蔽群消息。
asyncUnblockGroupMessage 取消屏蔽群消息。
asyncBlockUsers 将用户加入群组黑名单。
asyncUnblockUsers 将用户从群组黑名单中移除。
asyncGetBlockedUsers 以分页方式获取群组的黑名单。
asyncFetchGroupMembers 以分页方式获取群组成员列表。
asyncChangeOwner 移交群组所有权。
asyncAddGroupAdmin 添加群组管理员。
asyncRemoveGroupAdmin 删除群组管理员。
asyncMuteGroupMembers 将一组成员禁言。
asyncUnMuteGroupMembers 解除对一组成员的禁言。
muteAllMembers 将群组全员禁言。
unmuteAllMembers 解除对群组全员的禁言。
asyncFetchGroupMuteList 获取群组的禁言列表。
asyncFetchGroupBlackList 以分页从服务器获群组黑名单。
addToGroupWhiteList 将群成员添加至群组白名单。
removeFromGroupWhiteList 将群成员移出白名单。
fetchGroupWhiteList 获取群组白名单列表。
asyncUpdateGroupAnnouncement 更新群公告。
asyncFetchGroupAnnouncement 从服务器获取群公告。
asyncUploadGroupSharedFile 上传共享文件至群组。
asyncFetchGroupSharedFileList 从服务器获取群共享文件列表。
asyncDeleteGroupSharedFile 删除群组中指定的共享文件。
asyncDownloadGroupSharedFile 下载群组中指定的共享文件。
getAllGroups 从内存中获取当前用户的所有群组。
getGroup 根据群组 ID,从内存中获得群组对象。
loadAllGroups 从数据库中加载所有群组。
addGroupChangeListener 注册群组变动事件监听。
事件 描述
onInvitationReceived 用户收到入群邀请的回调。
onRequestToJoinReceived 用户申请入群回调。
onRequestToJoinAccepted 接受入群申请回调。
onRequestToJoinDeclined 拒绝入群申请回调。
onInvitationAccepted 接受入群邀请回调。
onInvitationDeclined 拒绝群组邀请回调。
onUserRemoved 当前登录用户被移出群组回调。
onGroupDestroyed 群组解散回调。
onAutoAcceptInvitationFromGroup 自动同意入群申请回调。
onMuteListAdded 有成员被禁言。
onMuteListRemoved 有成员被解除禁言。
onWhiteListAdded 将成员加入群组白名单回调。
onWhiteListRemoved 将成员移出白名单回调。
onAllMemberMuteStateChanged 全员禁言状态变化回调。
onAdminAdded 成员被设置为管理员回调。
onAdminRemoved 取消成员的管理员权限回调。
onOwnerChanged 转移群主权限回调。
onMemberJoined 新成员加入群组回调。
onMemberExited 群组成员主动退出回调。
onAnnouncementChanged 群公告更新回调。
onSharedFileAdded 群组中添加共享文件的回调。
onSharedFileDeleted 群组中删除共享文件回调。
onSpecificationChanged 群组详情更新回调,需调用asyncGetGroupFromServer获取最新群组信息。
onStateChanged 群组禁用或启动状态回调。

聊天室

方法名称 描述
asyncCreateChatRoom 创建聊天室。
asyncDestroyChatRoom 解散聊天室。
joinChatRoom 加入聊天室。
leaveChatRoom 退出聊天室。
fetchPublicChatRoomsFromServer 以分页的方式从服务器获取聊天室数据。
asyncFetchPublicChatRoomsFromServer 以分页的方式从服务器获取聊天室。
fetchChatRoomFromServer 从服务器获取聊天室详情。
asyncChangeChatRoomSubject 修改聊天室名称。
asyncChangeChatroomDescription 修改聊天室描述信息。
asyncFetchChatRoomMembers 获取聊天室成员列表。
asyncMuteChatRoomMembers 将一组聊天室成员禁言。
asyncUnMuteChatRoomMembers 解除禁言。
asyncAddChatRoomAdmin 添加聊天室管理员。
asyncRemoveChatRoomAdmin 移除聊天室管理员权限。
asyncFetchChatRoomMuteList 获取聊天室禁言列表。
asyncRemoveChatRoomMembers 将成员移出聊天室。
asyncBlockChatroomMembers 将成员添加到聊天室黑名单。
asyncUnBlockChatRoomMembers 从聊天室黑名单中移除成员。
asyncFetchChatRoomBlackList 以分页的形式获取聊天室黑名单列表。
addToChatRoomWhiteList 将成员添加到聊天室白名单。
removeFromChatRoomWhiteList 将成员从聊天室白名单移除。
fetchChatRoomWhiteList 从服务器获取聊天室白名单列表。
muteAllMembers 设置聊天室全员禁言。
unmuteAllMembers 解除聊天室全员的禁言状态。
asyncUpdateChatRoomAnnouncement 更新聊天室公告。
asyncFetchChatRoomAnnouncement 从服务器获取聊天室公告内容。
asyncSetChatroomAttributes 设置多个聊天室自定义属性。
asyncSetChatroomAttribute 设置聊天室单个自定义属性。
asyncSetChatroomAttributesForced 强制设置多个聊天室自定义属性。
asyncSetChatroomAttributeForced 强制设置单个聊天室自定义属性。
asyncFetchChatroomAttributesFromServer 根据聊天室属性 key 列表获取属性列表。
asyncFetchChatRoomAllAttributesFromServer 获取聊天室所有自定义属性。
asyncRemoveChatRoomAttributesFromServer 根据聊天室自定义属性 key 列表批量删除自定义聊天室属性。
asyncRemoveChatRoomAttributeFromServer 删除单个聊天室属性。
asyncRemoveChatRoomAttributesFromServerForced 强制删除多个聊天室自定义属性。
asyncRemoveChatRoomAttributeFromServerForced 强制删除单个聊天室自定义属性。
addChatRoomChangeListener 注册聊天室事件监听对象。
事件 描述
onChatRoomDestroyed 聊天室被解散。
onMemberJoined 有新成员加入聊天室。
onMemberExited 有成员主动退出聊天室。
onRemovedFromChatRoom 有成员被移出聊天室。
onMuteListAdded 有成员被禁言。
onMuteListRemoved 有成员从禁言列表中移除。
onWhiteListAdded 有成员加入聊天室白名单。
onWhiteListRemoved 有成员被移出聊天室白名单。
onAllMemberMuteStateChanged 全员禁言状态有变更。
onAdminAdded 有成员被设置为管理员。
onAdminRemoved 有成员被移出管理员列表。
onOwnerChanged 聊天室所有者变更。
onAnnouncementChanged 聊天室公告有变更。
onSpecificationChanged 聊天室信息有更新。
onAttributesUpdate 聊天室自定义属性(key-value)有更新。
onAttributesRemoved 聊天室自定义属性被移除。

用户在线状态

方法名称 描述
publishPresence 发布自定义在线状态。
subscribePresences 订阅指定用户的在线状态。
unsubscribePresences 取消订阅指定用户的在线状态。
fetchSubscribedMembers 分页查询当前用户订阅了哪些用户的在线状态。
fetchPresenceStatus 查询指定用户的当前在线状态。
addListener 添加监听。
事件 描述
onPresenceUpdated 被订阅的用户的在线状态发生更新。

子区

方法名称 描述
createChatThread 创建子区。
getChatThreadFromServer 从服务器获取子区详情。
joinChatThread 加入子区。
destroyChatThread 解散子区。
leaveChatThread 退出子区。
updateChatThreadName 修改子区名称。
removeMemberFromChatThread 移除子区成员。
getChatThreadMembers 分页获取子区成员。
getJoinedChatThreadsFromServer 分页从服务器获取当前用户加入的子区列表。
getJoinedChatThreadsFromServer 分页从服务器获取当前用户加入指定群组的子区列表。
getChatThreadsFromServer 分页从服务器端获取指定群组的子区列表。
getChatThreadLatestMessage 从服务器批量获取指定子区中的最新一条消息。
addChatThreadChangeListener 注册子区事件监听器,用于监听子区变化,如子区的创建和解散等。
removeChatThreadChangeListener 移除子区事件监听器。
事件 描述
onChatThreadCreated 子区创建回调。
onChatThreadUpdated 子区更新回调。
onChatThreadDestroyed 子区解散回调。
onChatThreadUserRemoved 当前登录用户被群主或群管理员移出子区的回调。

离线推送

方法名称 描述
getPushConfigs 从缓存获取推送配置信息。
getPushConfigsFromServer 从服务器获取推送配置信息。
asyncUpdatePushNickname 更新当前用户的推送昵称。
setSilentModeForConversation 设置会话的免打扰模式。
clearRemindTypeForConversation 清除会话的离线推送提醒类型设置。
getSilentModeForConversation 获取会话的免打扰设置。
setSilentModeForAll 设置当前登录用户的免打扰设置。
getSilentModeForAll 获取当前登录用户的免打扰设置。
getSilentModeForConversations 批量获取指定会话的免打扰设置。
bindDeviceToken 将设备 token 绑定到服务器。

用户属性

方法名称 描述
updateOwnInfo 修改当前用户的信息。
updateOwnInfoByAttribute 修改当前用户的属性。
fetchUserInfoByUserId 根据用户 ID 获取用户信息。
fetchUserInfoByAttribute 根据用户 ID 和用户属性获取用户信息。