本文档提供群组相关的类型和接口使用说明。API 接口详细文档参看 Android API 参考、iOS API 参考、Web API 参考、微信小程序 API 参考。
群组管理功能指的是创建群组、添加群成员、获取已加入的群组、退出群组和解散群组等,接口位于 BIMClient 类中。
使用 createGroupConversation 创建群组多人聊天功能,同时支持设置群头像,群名称和群描述。如果不使用群信息可以传参 groupInfo 为 null。
/** * 创建群组 * @param groupInfo 群组信息 * @param uidList 群用户列表 */ BIMGroupInfo groupInfo = new BIMGroupInfo.BIMGroupInfoBuilder() .avatarUrl("urlxxx") //群头像 .name("namexxx") //群名称 .description("descxxx") //群描述 .build(); BIMClient.getInstance().createGroupConversation(groupInfo, uidList, new BIMResultCallback<BIMConversation>() { @Override public void onSuccess(BIMConversation bimConversation) { } @Override public void onFailed(BIMErrorCode bimErrorCode) { } });
使用 addGroupMemberList 接口可以对已经存在的群组添加新的成员。
/** * 添加群成员 * @param conversationId * @param ids * @param callback */ BIMClient.getInstance().addGroupMemberList(conversationId, uidList, new BIMSimpleCallback() { @Override public void onSuccess() { } @Override public void onFailed(BIMErrorCode bimErrorCode) { } });
当前用户使用 leaveGroup 接口可以退出自己参与的群组。
/** * 离开群组。 * @param conversationId 会话 ID。 * @param isDeleteServer 是否在服务器删除。 * @param callback 结果回调。 */ BIMClient.getInstance().leaveGroup(conversationId, isDeleteServer, new BIMSimpleCallback() { @Override public void onSuccess() { } @Override public void onFailed(BIMErrorCode bimErrorCode) { } });
如果当前用户是群主,则可以使用 dissolveGroup 来解散群,群解散后,将无法送发消息到此群。
/** * 解散群组。 * @param conversationId 会话 ID。 * @param isDeleteLocal 是否在本地删除。 * @param callback 结果回调。 */ BIMClient.getInstance().dissolveGroup(conversationId, isDeleteLocal, new BIMSimpleCallback() { @Override public void onSuccess() { } @Override public void onFailed(BIMErrorCode bimErrorCode) { } });
使用 setGroupName 设置当前群的名称。
BIMClient.getInstance().setGroupName(conversationId, "", new BIMSimpleCallback() { @Override public void onSuccess() { } @Override public void onFailed(BIMErrorCode bimErrorCode) { } });
使用 setGroupNotice 设置当前群的群公告。
/** * 设置群组名称。 * @param conversationId 会话 ID。 * @param name 群组名称。 * @param callback 结果回调。 */ BIMClient.getInstance().setGroupNotice(conversationId, text,callback)
使用 getConversationMemberList 获取当前群的成员列表。
/** * 获取群成员。 * @param conversationId 会话 ID。 * @param callback 群成员列表回调。 */ BIMClient.getInstance().getConversationMemberList(conversationId, new BIMResultCallback<List<BIMMember>>() { @Override public void onSuccess(List<BIMMember> bimMembers) { } @Override public void onFailed(BIMErrorCode bimErrorCode) { } });
群主和管理员可通过 removeGroupMemberList 移出部分成员。
/** * 移除群成员。 * @param conversationId 会话 ID。 * @param ids 待移除的群成员 ID 列表。 * @param callback 结果回调。 */ BIMClient.getInstance().removeGroupMemberList(conversationId, uidList, new BIMSimpleCallback() { @Override public void onSuccess() { } @Override public void onFailed(BIMErrorCode bimErrorCode) { } });
群成员角色和权限如下。
类型 | 含义 | 解散群 | 添加成员 | 移出成员 | 退出群聊 | 设置管理员 |
---|---|---|---|---|---|---|
BIM_MEMBER_ROLE_NORMAL | 普通成员 | 不支持 | 不支持 | 不支持 | 支持 | 不支持 |
BIM_MEMBER_ROLE_OWNER | 群主 | 支持 | 支持 | 支持 | 支持 | 支持 |
BIM_MEMBER_ROLE_ADMIN | 管理员 | 不支持 | 支持 | 支持 | 支持 | 支持 |
设置群管理员的示例代码如下。
/** * 设置群成员角色。 * @param conversationId 会话 ID。 * @param uidList 群成员 ID 列表。 * @param role 群组角色。 * @param callback 结果回调。 */ BIMClient.getInstance().setGroupMemberRole(conversationId, uidList,BIMMemberRole.BIM_MEMBER_ROLE_ADMIN, new BIMSimpleCallback() { @Override public void onSuccess() { } @Override public void onFailed(BIMErrorCode bimErrorCode) { } });