IM即时通讯

API参考

更新时间: 2024/09/03 14:09:16

初始化

获取sdk版本号

+ CRIMClient.getInstance().sdkVersion
  • 返回值:版本号字符串

获取当前已登录用户的userID

+ CRIMClient.getInstance().getLoginUserID;
  • 返回值:登录用户的userID

初始化SDK

- CRIMClient.getInstance().initSDKWithConfig
  • 返回值:初始化结果

  • 参数

参数 类型 必传 含义
application Application 上下文
platform int 平台类型,如Platform.ANDROID
apiUrl String sdk服务器地址
storageDir String 数据存储目录路径
logLevel int 日志等级,如:6
isLogStandardOutput boolean 控制台是否输出日志
logFilePath String 日志输出的路径
isExternalExtensions boolean 消息扩展

设置连接监听

- CRIMClient.getInstance().setConnListener
  • 返回值:初始化结果

  • 参数

参数 类型 必传 含义
listener OnConnListener SDK初始化监听

反初始化SDK

- CRIMClient.getInstance().unInitSDK
参数 类型 必传 含义
operationID String 操作ID
  • 返回值:无

添加消息监听

- CRIMClient.getInstance().messageManager.setAdvancedMsgListener
参数 类型 必传 含义
listener OnAdvanceMsgListener 监听者
  • 返回值:无

设置好友关系监听器

- CRIMClient.getInstance().friendshipManager.setOnFriendshipListener
参数 类型 必传 含义
listener OnFriendshipListener 监听者
  • 返回值:无

设置会话监听器

- CRIMClient.getInstance().conversationManager.setOnConversationListener
参数 类型 必传 含义
listener OnConversationListener 监听者
  • 返回值:无

设置组监听器

- CRIMClient.getInstance().groupManager.setOnGroupListener
参数 类型 必传 含义
listener OnGrpListener 监听者
  • 返回值:无

设置心跳间隔

- CRIMClient.getInstance().setHeartbeatInterval;
  • 返回值:无

  • 参数

参数 类型 必传 含义
heartbeatInterval long 心跳间隔

登录

使用appId登录

- CRIMClient.getInstance().login
  • 返回值:无

  • 参数

参数 类型 必传 含义
base OnBase<String> 回调
userID String 用户ID userID来自于自身业务服务器
appId String APP ID 可在管理后台,【项目管理】获取
appSecret String APP Secret 可在管理后台,【项目管理】获取,MD5后的值

使用token登录

- CRIMClient.getInstance().login
  • 返回值:无

  • 参数

参数 类型 必传 含义
base OnBase<String> 回调
userID String 用户ID userID来自于自身业务服务器
token String token生成器返回的token

获取登录状态

- CRIMClient.getInstance().getLoginStatus;
  • 返回值:登录状态: 1:Logout, 2:Logging, 3:Logged

登出

- CRIMClient.getInstance().logout;
  • 返回值:无

  • 参数

参数 类型 必传 含义
base OnBase<String> 操作的回调

用户

根据userID批量查询用户信息

- CRIMClient.getInstance().userInfoManager.getUsersInfo(OnBase<List<UserInfo>> base, List<String> uidList)
  • 返回值:无

  • 参数

参数 类型 必传 含义
uidList List 用户id列表
base OnBase<List<UserInfo>> 操作成功的回调

修改当前登录用户信息

- CRIMClient.getInstance().userInfoManager.setSelfInfo(OnBase<String> base, String nickname, String faceURL, int gender, int appMangerLevel, String phoneNumber, long birth, String email, String ex)
  • 返回值:无

  • 参数

参数 类型 必传 含义
nickname String 名字
faceURL String 头像
gender String 性别
phoneNumber String 手机号
birth String 出生日期
email String 邮箱
ex String 额外信息
base OnBase<String> 操作的回调

相关回调请参考:

获取当前登录用户信息

- CRIMClient.getInstance().userInfoManager.getSelfInfo(OnBase<UserInfo> base)
  • 返回值:无

  • 参数

参数 类型 必传 含义
base OnBase<UserInfo> 操作的回调

订阅指定用户的在线状态

调用订阅用户的在线状态接口,可以订阅用户的在线状态,触发订阅者的onUserStatusChanged回调。

- CRIMClient.getInstance().userInfoManager.subscribeUsersStatus
  • 返回值:无

  • 参数

参数 类型 必传 含义
userID String 用户ID
base OnBase<UserInfo> 操作的回调

取消订阅用户的在线状态

- CRIMClient.getInstance().unsubscribeUsersStatus
  • 返回值:无

  • 参数

参数 类型 必传 含义
userID String 用户ID
base OnBase<UserInfo> 操作的回调

获取所有已订阅用户的在线状态

- CRIMClient.getInstance().getSubscribeUsersStatus
  • 返回值:无

  • 参数

参数 类型 必传 含义
base OnBase<UserInfo> 操作的回调

获取指定用户的在线状态

- CRIMClient.getInstance().getUserStatus
  • 返回值:无

  • 参数

参数 类型 必传 含义
userID String 用户ID
base OnBase<UserInfo> 操作的回调

会话

获取会话列表

- CRIMClient.getInstance().conversationManager.getAllConversationList(OnBase<List<ConversationInfo>> base)
  • 返回值:无

  • 参数

参数 类型 必传 含义
base OnBase<List<ConversationInfo>> 操作成功的回调

分页获取会话列表

- CRIMClient.getInstance().conversationManager.getConversationListSplit(OnBase<List<ConversationInfo>> base, long offset, long count)
  • 返回值:无

  • 参数

参数 类型 必传 含义
offset long 起始偏移量
count long 拉取会话的数量
base OnBase<List<ConversationInfo>> 操作的回调

获取一个会话

如果不存在会自动创建

- CRIMClient.getInstance().conversationManager.getOneConversation(OnBase<ConversationInfo> base, String sourceId, int sessionType)
  • 返回值:无

  • 参数

参数 类型 必传 含义
sessionType int 会话的类型
sourceID String 单聊为用户ID,群聊为群ID
base OnBase<ConversationInfo> 操作成功的回调

获取多个会话列表

- CRIMClient.getInstance().conversationManager.getMultipleConversation(OnBase<List<ConversationInfo>> base, List<String> conversationIDs)
  • 返回值:无

  • 参数

参数 类型 必传 含义
conversationIDs List 会话ID的列表
base OnBase<List<ConversationInfo>> 操作成功的回调

本地删除一个会话

- CRIMClient.getInstance().conversationManager.deleteConversationAndDeleteAllMsg(OnBase<String> base, String conversionID)
  • 返回值:无

  • 参数

参数 类型 必传 含义
conversationID String 会话ID
base OnBase<String> 操作成功的回调

清空一个会话

本地 & 服务器

- CRIMClient.getInstance().conversationManager.clearConversationAndDeleteAllMsg(OnBase<String> base, String conversionID)
  • 返回值:无

  • 参数

参数 类型 必传 含义
conversationID String 会话ID
base OnBase<String> 操作成功的回调

相关回调请参考:

设置会话的草稿

- CRIMClient.getInstance().setConversationDraft
  • 返回值:无

  • 参数

参数 类型 必传 含义
conversationID String 会话ID
draftText String 草稿文本,如果为""则为删除草稿
base OnBase<String> 操作成功的回调

置顶会话

- CRIMClient.getInstance().conversationManager.pinConversation(OnBase<String> base, String conversationID, boolean isPinned) 
  • 返回值:无

  • 参数

参数 类型 必传 含义
conversationID String 会话ID
isPinned boolean 为YES时,代表置顶会话,为NO时代表取消置顶
base OnBase<String> 操作成功的回调

相关回调请参考:

获取总的消息未读数

- CRIMClient.getInstance().conversationManager.getTotalUnreadMsgCount
  • 返回值:无

  • 参数

参数 类型 必传 含义
base OnBase<String> 操作的回调

获取会话免打扰状态

- CRIMClient.getInstance().conversationManager.getConversationRecvMsgOpt(OnBase<List<NotDisturbInfo>> base, List<String> conversationIDs)
  • 返回值:无

  • 参数

参数 类型 必传 含义
conversationIDs List<String> 会话ID列表
base OnBase<List<NotDisturbInfo>> 操作成功的回调

设置会话免打扰状态

- CRIMClient.getInstance().conversationManager.setConversationRecvMsgOpt(OnBase<String> base, String conversationID, long status)
  • 返回值:无

  • 参数

参数 类型 必传 含义
conversationID String 会话ID
status long 免打扰状态
base OnBase<String> 操作成功的回调

相关回调请参考:

设置私聊

可做“阅后即焚”功能

- CRIMClient.getInstance().conversationManager.setConversationPrivateChat(OnBase<String> base, String conversionID, boolean isPrivate) 
  • 返回值:无

  • 参数

参数 类型 必传 含义
conversationID String 会话ID
isPrivate boolean 是否为私聊
base OnBase<String> 操作成功的回调

相关回调请参考:

设置私聊时间

可做“阅后即焚”时间设置功能

- CRIMClient.getInstance().conversationManager.setConversationBurnDuration(OnBase<String> base, String conversationID, int burnDuration)
  • 返回值:无

  • 参数

参数 类型 必传 含义
conversationID String 会话ID
burnDuration int 阅后即焚时间间隔
base OnBase<String> 操作成功的回调

相关回调请参考:

重置at标准位

- CRIMClient.getInstance().conversationManager.resetConversationGrpAtType
  • 返回值:无

  • 参数

参数 类型 必传 含义
conversationID String 会话ID
base OnBase<String> 操作成功的回调

隐藏指定会话

不删除聊天记录;如果有新消息到达,会话会再次出现。

- CRIMClient.getInstance().conversationManager.hideConversation(OnBase<String> base, String conversationID)
  • 返回值:无

  • 参数

参数 类型 必传 含义
conversationID String 会话ID
base OnBase<String> 操作的回调

隐藏所有会话

不删除聊天记录;如果有新消息到达,会话会再次出现。

- CRIMClient.getInstance().conversationManager.hideAllConversations(OnBase<String> base)
  • 返回值:无

  • 参数

参数 类型 必传 含义
base OnBase<String> 操作的回调

全局设置消息提示

- CRIMClient.getInstance().conversationManager.setGlobalRecvMsgOpt
  • 返回值:无

  • 参数

参数 类型 必传 含义
status int 状态 1:屏蔽消息; 2:接收消息但不提示; 0:正常
base OnBase<String> 操作的回调

好友

添加好友

- CRIMClient.getInstance().friendshipManager.addFriend(OnBase<String> base, String userID, String reqMessage)
  • 返回值:无

  • 参数

参数 类型 必传 含义
userID String 对方userID
reqMessage String 请求消息
base OnBase<String> 操作的回调

相关回调请参考:

获取收到的好友申请

既哪些人申请加我为好友

- CRIMClient.getInstance().friendshipManager.getFriendReqListAsRecipient(OnBase<List<FriendReqInfo>> base)
  • 返回值:无

  • 参数

参数 类型 必传 含义
base OnBase<List<FriendReqInfo>> 操作的回调

发出的好友申请

- CRIMClient.getInstance().friendshipManager.getFriendReqListAsApplicant(OnBase<List<FriendReqInfo>> base)
  • 返回值:无

  • 参数

参数 类型 必传 含义
base OnBase<List<FriendReqInfo>> 操作的回调

同意某人的好友申请

- CRIMClient.getInstance().friendshipManager.acceptFriendReq(OnBase<String> base, String userID, String handleMsg)
  • 返回值:无

  • 参数

参数 类型 必传 含义
userID String 用户id
handleMsg String 消息
base OnBase<String> 操作的回调

相关回调请参考:

拒绝好友申请

- CRIMClient.getInstance().friendshipManager.refuseFriendReq( OnBase<String> base, String userID, String msg)
  • 返回值:无

  • 参数

参数 类型 必传 含义
userID String 用户id
msg String 消息
base OnBase<String> 操作的回调

相关回调请参考:

加入黑名单

- CRIMClient.getInstance().friendshipManager.addToBlacklist(OnBase<String> base, String userID)
  • 返回值:无

  • 参数

参数 类型 必传 含义
userID String 用户id
base OnBase<String> 操作的回调

相关回调请参考:

获取黑名单

- CRIMClient.getInstance().friendshipManager.getBlackList(OnBase<List<UserInfo>> base)
  • 返回值:无

  • 参数

参数 类型 必传 含义
base OnBase<List<UserInfo>> 操作的回调

移除黑名单

- CRIMClient.getInstance().friendshipManager.removeFromBlacklist(OnBase<String> base, String userID)
  • 返回值:无

  • 参数

参数 类型 必传 含义
userID String 用户id
base OnBase<String> 操作的回调

相关回调请参考:

获取指定好友列表的相关信息

- CRIMClient.getInstance().friendshipManager.getSpecifiedFriendsInfo(OnBase<List<UserInfo>> base, List<String> uidList)
  • 返回值:无

  • 参数

参数 类型 必传 含义
uidList String 用户id列表
base OnBase<List<UserInfo>> 操作的回调

获取所有好友的相关信息

- CRIMClient getInstance().friendshipManager.getFriendList(OnBase<List<UserInfo>> base)
  • 返回值:无

  • 参数

参数 类型 必传 含义
base OnBase<List<UserInfo>> 操作的回调

检查是否好友关系

即是否在登录用户的好友列表中。注意:好友是双向关系。result为1表示好友(并且不是黑名单)

- CRIMClient.getInstance().friendshipManager.checkFriend(OnBase<List<FriendshipInfo>> base, List<String> uidList)
  • 返回值:无

  • 参数

参数 类型 必传 含义
uidList List<String> userID列表
base OnBase<List<FriendshipInfo>> 操作的回调

设置好友备注

- CRIMClient.getInstance().friendshipManager.setFriendRemark(OnBase<String> base, String userID, String remark)
  • 返回值:无

  • 参数

参数 类型 必传 含义
userID String 用户id
remark String 备注信息
base OnBase<String> 操作的回调

相关回调请参考:

删除好友

好友是双向关系,此函数仅仅删除自己的好友

- CRIMClient.getInstance().friendshipManager.deleteFriend(OnBase<String> base, String friendUserID)
  • 返回值:无

  • 参数

参数 类型 必传 含义
friendUserID String 好友ID
base OnBase<String> 操作的回调

相关回调请参考:

本地搜索好友

- CRIMClient.getInstance().friendshipManager.searchFriends(OnBase<List<FriendInfo>> base, List<String> keywordList, boolean isSearchUserID, boolean isSearchNickname, boolean isSearchRemark)
  • 返回值:无

  • 参数

参数 类型 必传 含义
keywordList List<String> 搜索好友结构体
isSearchUserID boolean 是否以关键词搜索好友ID
isSearchNickname boolean 是否以关键词搜索昵称
isSearchRemark boolean 是否以关键词搜索备注名
base OnBase<List<FriendshipInfo>> 操作的回调

群组

创建群

-  CRIMClient.getInstance().groupManager.createGrp(List<String> memberUserIDs, List<String> adminUserIDs,GrpInfo groupInfo, String ownerUserID, OnBase<GrpInfo> callBack)
  • 返回值:无

  • 参数

参数 类型 必传 含义
memberUserIDs List<String> 初始化群成员ID列表
adminUserIDs List<String> 管理用户用户ID列表
callBack OnBase 操作的回调
groupInfo GrpInfo<GrpInfo> 组信息列表
ownerUserID String 群主ID

相关回调请参考:

申请加入群组

- CRIMClient.getInstance().groupManager.joinGrp
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群组ID
reqMsg String 进群申请消息
joinSource String 进群方式
base OnBase<String> 操作的回调

相关回调请参考:

退群

- CRIMClient.getInstance().groupManager.quitGrp(OnBase<String> base, String groupID)
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群ID
base OnBase<String> 操作的回调

相关回调请参考:

获取已加入的群列表

- CRIMClient.getInstance().groupManager.getJoinedGrpList
  • 返回值:无

  • 参数

参数 类型 必传 含义
base OnBase<List<GrpInfo>> 操作的回调

获取指定群资料

获取指定群的资料,支持批量获取。

- CRIMClient.getInstance().groupManager.getSpecifiedGrpsInfo(OnBase<List<GrpInfo>> base, List<String> groupsID)
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupsID List<String> 群ID集合
base OnBase<List<GrpInfo>> 操作的回调

更新群资料

更新群头像、群名称、群公告、群简介等群资料,仅群主和管理员有权限。

- CRIMClient.getInstance().groupManager.setGrpInfo(GrpInfo groupInfo, OnBase<String> callBack)
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupInfo GrpInfo 群信息结构体
callBack OnBase<String> 操作的回调

相关回调请参考:

获取群成员列表

- CRIMClient.getInstance().groupManager.getGrpMemberList(OnBase<List<GroupMembersInfo>> base, String groupId, int filter, int offset, int count)
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群组ID
filter int 过滤成员,0不过滤,1群的创建者,2管理员;默认值0
offset int 起始偏移
count int 成员个数
base OnBase<List<GroupMembersInfo>> 操作的回调

获取群内指定群成员信息

获取群内指定的群成员信息,仅本群成员可调用。

- CRIMClient.getInstance().groupManager.getSpecifiedGrpMembersInfo(OnBase<List<GroupMembersInfo>> base, String groupId, List<String> uidList) 
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群组ID
userIDs List<String> 群成员ID
base OnBase<List<GroupMembersInfo>> 操作的回调

踢出群

- CRIMClient.getInstance().groupManager.kickGrpMember(OnBase<String> base, String groupId, List<String> uidList, String reason)
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群组ID
reason String 说明
uidList List<String> 被要踢出群的用户id列表
base OnBase 操作的回调

相关回调请参考:

转让群主

只有群主能操作

- CRIMClient.getInstance().groupManager.transferGrpOwner(OnBase<String> base, String groupID, String uid) 
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群组ID
uid String 新群主用户ID
base OnBase<String> 操作的回调

相关回调请参考:

邀请入群

群组成员可邀请其他用户加入群组,无须对方同意,支持批量邀请。

- CRIMClient.getInstance().groupManager.inviteUserToGrp(OnBase<String> base, String groupId, List<String> userIDs, String reason) 
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群组ID
reason String 邀请说明
userIDs List<String> 被邀请用户id列表
base OnBase<String> 操作的回调

相关回调请参考:

获取收到的群成员申请进群列表

作为群主或者管理员可操作

- CRIMClient.getInstance().groupManager.getGrpReqListAsRecipient
  • 返回值:无

  • 参数

参数 类型 必传 含义
base OnBase<List<GrpReqInfo>> 操作的回调

发出的入群申请

- CRIMClient.getInstance().groupManager.getGrpReqListAsApplicant(OnBase<List<GrpReqInfo>> base)
  • 返回值:无

  • 参数

参数 类型 必传 含义
base OnBase<List<GrpReqInfo>> 操作的回调

同意某人进入某群

管理员或者群主操作

- CRIMClient.getInstance().groupManager.acceptGrpReq(OnBase<String> base, String groupID, String fromUserID, String handleMsg) 
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群ID
fromUserID String 申请进群的用户ID
handleMsg String 处理的消息
base OnBase<String> 操作的回调

拒绝某人进入某群

管理员或者群主操作

- CRIMClient.getInstance().groupManager.refuseGrpReq(OnBase<String> base, String groupID, String fromUserID, String handleMsg)
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群ID
fromUserID String 申请进群的用户ID
handleMsg String 处理的消息
base OnBase<String> 操作的回调

解散群

- CRIMClient.getInstance().groupManager.dismissGrp(OnBase<String> base, String groupID)
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群ID
base OnBase<String> 操作的回调

相关回调请参考:

禁言群成员

- CRIMClient.getInstance().groupManager.changeGrpMemberMute(OnBase<String> base, String groupID, String userID, long seconds)
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群组ID
userID String 用户ID
mutedSeconds long 禁言时间,为0时取消禁言
base OnBase<String> 操作的回调

设置群禁言状态

群主或管理员可以设置群禁言状态,禁言后仅群主和管理员可以发言。

- CRIMClient.getInstance().groupManager.changeGrpMute(onbase,groupID,isMute);
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群ID
isMute boolean 是否禁言
onbase OnBase<String> 操作的回调

相关回调请参考:

搜索群

通过群名称或者群ID

- CRIMClient.getInstance().groupManager.searchGrps
  • 返回值:无

  • 参数

参数 类型 必传 含义
keywordList List<String> 关键词
isSearchGroupID boolean 是通过群组id进行查询
isSearchGroupName boolean 是通过群名称查询
base OnBase<List<GrpInfo>> 操作的回调

设置群成员昵称

群主可以修改管理员和普通成员的昵称,管理员可以修改普通成员的昵称。

- CRIMClient.getInstance().groupManager.setGrpMemberNickname(OnBase<String> base, String groupID, String userID, String groupNickname)
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群ID
userID String 用户ID
groupNickname String 昵称
base OnBase<String> 操作的回调

相关回调请参考:

修改群成员身份

群主可以修改管理员和普通成员的身份,管理员可以修改普通成员的身份。

- CRIMClient.getInstance().groupManager.setGrpMemberRoleLevel(OnBase<String> base, String groupID, String userID, long roleLevel)
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群ID
userID String 用户ID
roleLevel long 成员身份
base OnBase<String> 操作的回调

相关回调请参考:

根据加入时间分页获取组成员列表

- CRIMClient.getInstance().groupManager.getGrpMemberListByJoinTimeFilter
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群ID
offset int 开始下标
count int 总数
joinTimeBegin long 加入开始时间
joinTimeEnd long 加入结束时间
filterUserIDList List<String> 用户ID列表
base OnBase<List<GroupMembersInfo>> 操作的回调

进群验证设置选项

-  CRIMClient.getInstance().groupManager.setGrpVerification(OnBase<String> base, String groupID, int needVerification) 
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群ID
needVerification int 进群设置
base OnBase<String> 操作的回调

获取管理者和拥有者

- CRIMClient.getInstance().groupManager.getGrpMemberOwnerAndAdmin
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群ID
base OnBase<List<GroupMembersInfo>> 操作的回调

群成员之间是否可添加好友

- CRIMClient.getInstance().groupManager.setGrpApplyMemberFriend:
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群ID
status int 0: 默认可行 1: 不可行
base OnBase<String> 操作的回调

设置能否查看群成员信息

- CRIMClient.getInstance().groupManager.setGrpLookMemberInfo:
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群ID
status int 0: 默认可行 1: 不可行
base OnBase<String> 操作的回调

搜索群成员

- CRIMClient.getInstance().groupManager.searchGrpMembers(OnBase<List<GroupMembersInfo>> base, String groupID, List<String> keywordList, boolean isSearchUserID,boolean isSearchMemberNickname, int offset, int count) 
  • 返回值:无

  • 参数

参数 类型 必传 含义
groupID String 群id
keywordList List<String> 关键词
isSearchUserID boolean 是否以关键词搜成员id
isSearchMemberNickname boolean 是否以关键词搜索成员昵称
offset int 开始index
count int 数量
base OnBase<List<GroupMembersInfo>> 操作的回调

消息

发送消息

-  CRIMClient.getInstance().messageManager.sendMsg(OnMsgSendCallback base, Message message, String recvUid, String recvGid, OfflinePushInfo offlinePushInfo)
  • 返回值:无

  • 参数

参数 类型 必传 含义
base OnMsgSendCallback 操作回调
message Message 消息体
recvUid String 接受者用户id
recvGid String 群id
offlinePushInfo OfflinePushInfo 离线推送内容

创建文本消息

-  CRIMClient.getInstance().messageManager.createTextMsg(String text)
参数 类型 必传 含义
text String 内容

创建@文本消息

+ CRIMClient.getInstance().messageManager.createTextAtMsg
  • 返回值:消息结构体Message

  • 参数

参数 类型 必传 含义
text String 内容
atuserIDs List<String> 用户id列表
atUsersInfo List<AtUserInfo> 用户在群内的信息
message Message 引用消息的时候使用

通过本地图片路径创建图片消息

使用此接口可文件路径参数需用绝对路径

- CRIMClient.getInstance().messageManager.createImageMsgFromFullPath(String imagePath)
  • 返回值:消息结构体Message

  • 参数

参数 类型 必传 含义
imagePath String 绝对路径

通过图片URL创建图片消息

例如:自行上传的文件,然后使用返回的url构造消息

- CRIMClient.getInstance().messageManager.createImageMsgByURL(PictureInfo sourcePicture, PictureInfo bigPicture, PictureInfo snapshotPicture)
  • 返回值:消息结构体Message

  • 参数

参数 类型 必传 含义
sourcePicture PictureInfo 音频文件信息
bigPicture PictureInfo 大图信息
snapshotPicture PictureInfo 缩略图信息

通过本地音频路径创建音频消息

使用此接口可文件路径参数需用绝对路径

+ CRIMClient.getInstance().messageManager.createSoundMsgFromFullPath
  • 返回值:消息结构体Message

  • 参数

参数 类型 必传 含义
soundPath String 绝对路径
duration int 时长

通过音频URL创建音频消息

例如:自行上传的文件,然后使用返回的url构造消息

+ CRIMClient.getInstance().messageManager.createSoundMsgByURL
  • 返回值:消息结构体Message

  • 参数

参数 类型 必传 含义
soundElem SoundElem 音频参数结构体

通过本地视频路径创建视频消息

使用此接口可文件路径参数需用绝对路径

+ CRIMClient.getInstance().messageManager.createVideoMsgFromFullPath
  • 返回值:消息结构体Message

  • 参数

参数 类型 必传 含义
videoPath String 视频绝对路径
videoType String mine type
duration int 时长
snapshotPath String 缩略图绝对路径

通过视频URL创建视频消息

例如:自行上传的文件,然后使用返回的url构造消息

+ CRIMClient.getInstance().messageManager.createVideoMsgByURL
  • 返回值:消息结构体Message

  • 参数

参数 类型 必传 含义
videoElem VideoElem 视频参数结构体

通过本地文件路径创建文件消息

使用此接口可文件路径参数需用绝对路径

+ CRIMClient.getInstance().messageManager.createFileMsgFromFullPath
  • 返回值:消息结构体Message

  • 参数

参数 类型 必传 含义
filePath String 文件本地的绝对路径
fileName String 文件名

通过文件URL创建文件消息

例如:自行上传的文件,然后使用返回的url构造消息

+ CRIMClient.getInstance().messageManager.createFileMsgByURL
  • 返回值:消息结构体Message

  • 参数

参数 类型 必传 含义
fileElem FileElem 文件参数结构体

创建合并消息

- CRIMClient.getInstance().messageManager.createMergerMsg(List<Message> messageList, String title, List<String> summaryList)
  • 返回值:消息结构体Message

  • 参数

参数 类型 必传 含义
messageList List<Message> 消息列表
title String 标题
summaryList List<Message> 摘要

创建转发消息

- CRIMClient.getInstance().messageManager.createForwardMsg(Message message)
  • 返回值:消息结构体Message

  • 参数

参数 类型 必传 含义
message Message 消息

创建位置消息

- CRIMClient.etInstance().messageManager.createLocationMsg(double latitude, double longitude, String description)
  • 返回值:消息结构体Message

  • 参数

参数 类型 必传 含义
description String 描述消息
latitude double 经度
longitude double 纬度

创建引用消息

+ CRIMClient.getInstance().messageManager.createQuoteMsg(String text, Message message)
  • 返回值:消息结构体Message

  • 参数

参数 类型 必传 含义
text String 内容
message Message 被引用的消息体

创建名片消息

+ CRIMClient.getInstance().messageManager.createCardMsg
  • 返回值:消息结构体Message

  • 参数

参数 类型 必传 含义
cardElem CardElem 内容结构体

创建自定义消息

- CRIMClient.getInstance().messageManager.createCustomMsg(String data, String extension) 
  • 返回值:消息结构体Message

  • 参数

参数 类型 必传 含义
data String 文本内容,json字符串
extension String 扩展内容,json字符串

创建动图消息

+ CRIMClient.getInstance().messageManager.createFaceMsgWithIndex
  • 返回值:消息结构体Message

  • 参数

参数 类型 必传 含义
index long 下标
dataStr String 内容

发送消息

发送消息需要先构造消息实例,支持构造的消息类型有普通文本、图片、视频、文件、音频、地理位置、引用、转发、@xxx等消息,构造完消息后调用SDK的发送接口即可完成消息的发送

- CRIMClient.getInstance().messageManager.sendMsg
  • 返回值:无

  • 参数

参数 类型 必传 含义
message Message 消息体为通过Create...Message创建的Message
recvID String 单聊的用户ID,如果为群聊则为""
recvGid String 群聊的群ID,如果为单聊则为""
offlinePushInfo OfflinePushInfo 离线推送的消息为OfflinePushInfo
base MsgCallback 操作的回调

撤回一条消息

- CRIMClient.getInstance().messageManager.revokeMsg(OnBase<String> callBack, String conversationID, String clientMsgID)
  • 返回值:无

  • 参数

参数 类型 必传 含义
conversationID String 会话ID
clientMsgID String 消息ID
callBack OnBase 操作的回调

相关回调请参考:

单聊正在输入消息

- CRIMClient.getInstance().messageManager.typingStatusUpdate
  • 返回值:无

  • 参数

参数 类型 必传 含义
recvID String 接收者的ID
msgTip String 自定义的提示信息
base OnBase<String> 操作的回调

标记消息已读

调用标记已读接口,可以把消息标记为已读,如果是单聊会话内的消息,还会给消息的发送方发送已读回执,触发发送方的onRecv1v1ReadReceipt回调。

- CRIMClient getInstance()..messageManager.markMsgAsReadByMsgID(String conversationID, List<String> clientMsgIDs, OnBase<String> callBack) 
  • 返回值:无

  • 参数

参数 类型 必传 含义
conversationID String 会话ID
clientMsgIDs List<String> 消息ID列表
callBack OnBase<String> 操作的回调

相关回调请参考:

从本地删除一条消息

- CRIMClient.getInstance().messageManager.deleteMsgFromLocalStorage(String conversationID, String clientMsgID, OnBase<String> callBack)
  • 返回值:无

  • 参数

参数 类型 必传 含义
conversationID String 会话ID
clientMsgID String 消息ID
OnBase OnBase<String> 操作的回调

相关回调请参考:

删除一条消息

本地 & 服务器

- CRIMClient.getInstance().messageManager.deleteMsg(String conversationID, String clientMsgID, OnBase<String> callBack)
  • 返回值:无

  • 参数

参数 类型 必传 含义
conversationID String 会话ID
clientMsgID String 消息ID
callBack OnBase<String> 操作的回调

相关回调请参考:

从本地删除所有消息

- CRIMClient.getInstance().messageManager.deleteAllMsgFromLocal(OnBase<String> base);
  • 返回值:无

  • 参数

参数 类型 必传 含义
base OnBase<String> 操作的回调

删除所有消息

本地 & 服务器

- CRIMClient.getInstance().messageManager.deleteAllMsgFromLocalAndSvr(OnBase<String> base)
  • 返回值:无

  • 参数

参数 类型 必传 含义
base OnBase<String> 操作的回调

相关回调请参考:

插入一条单聊消息到本地

- CRIMClient.getInstance().messageManager.insertSingleMsgToLocalStorage(OnBase<String> base, Message message, String receiver, String sender) 
  • 返回值:无

  • 参数

参数 类型 必传 含义
message Message 消息体
recvID String 接收用户ID
sendID String 发送者ID
base OnBase<String> 操作的回调

相关回调请参考:

插入一条群聊消息到本地

- CRIMClient.getInstance().messageManager.insertGrpMsgToLocalStorage(OnBase<String> base, Message message, String groupID, String senderID) 
  • 返回值:无

  • 参数

参数 类型 必传 含义
message Message 消息体
groupID String 群ID
sendID String 发送者ID
base OnBase<String> 操作的回调

相关回调请参考:

查找本地消息

- CRIMClient.getInstance().messageManager.searchLocalMsgs(OnBase<SearchResult> base, 
String conversationID, 
List<String> keywordList, 
int keywordListMatchType,
List<String> senderUserIDList, 
List<Integer> messageTypeList, 
int searchTimePosition, 
int searchTimePeriod, 
int pageIndex, 
int count) 
  • 返回值:无

  • 参数

参数 类型 必传 含义
base OnBase<SearchResult> 操作的回调
conversationID String 会话ID
keywordList List<String> 搜索关键词列表
keywordListMatchType int 关键词匹配模式,1代表与,2代表或,暂时未用
senderUserIDList List<String> 指定消息发送的uid列表
messageTypeList List<String> 消息类型列表
searchTimePosition int 搜索的起始时间点
searchTimePeriod int 当前页数,单位秒。
pageIndex int 操作的回调
count int 每页数量

独立上传文件到初始化sdk的storageDir

发送多媒体消息不需调用此函数,其在sdk内部自动上传

- CRIMClient.getInstance().uploadFile
  • 返回值:无

  • 参数

参数 类型 必传 含义
putArgs PutArgs 实体参数
listener OnPutFileListener 进度监听
base OnBase<String> 操作的回调

获取历史消息

从最新一条消息开始获取会话中的历史聊天记录。

CRIMClient.getInstance().messageManager.getAdvancedHistoryMsgList(OnBase<AdvancedMsg> callBack, String conversationID, Message startMsg, int count) 
  • 返回值:无

  • 参数

参数 类型 必传 含义
callBack OnBase<AdvancedMsg> 操作结果回调
conversationID String 会话id
startMsg Message 从startMsg开始拉取消息
count int 一次拉取count条

反向获取历史消息

反向获取会话中的历史聊天记录,可用于定位消息上下文时后向下拉取历史消息。

- CRIMClient.getInstance().messageManager.getAdvancedHistoryMsgListReverse(OnBase<AdvancedMsg> callBack, String conversationID, Message startMsg, int count)
  • 返回值:无

  • 参数

参数 类型 必传 含义
callBack OnBase<AdvancedMsg> 操作结果回调
conversationID String 会话id
startMsg Message 从startMsg开始拉取消息
count int 一次拉取count条

设置角标

告知服务器 客户端现有的数量

- CRIMClient.getInstance().messageManager.setAppBadge:
  • 返回值:无

  • 参数

参数 类型 必传 含义
count int 角标数
base OnBase<String> 操作的回调

清空未读数

调用标记已读接口,可以把会话内的消息标记为已读,对于群聊和通知会话,调用该接口可以清除未读计数,对于单聊会话,不仅会清除未读计数,还会给消息的发送方发送已读回执,触发发送方的onRecv1v1ReadReceipt回调。

- CRIMClient.getInstance().messageManager.markConversationMsgAsRead(String conversationID, OnBase<String> callback)
  • 返回值:无

  • 参数

参数 类型 必传 含义
conversationID String 会话ID
callback OnBase<String> 操作的回调

相关回调请参考: