title: 讨论组管理

本篇文档介绍讨论组的创建和权限管理。

创建讨论组

Wilddog IM SDK 不严格区分单聊和讨论组,创建会话时,当会话成员为 1 个时,则为单聊。当大于 1 个时则自动升级为讨论组。 newConversation(List<String> members,CompletionListener completionListener) 用于创建讨论组。 例如,创建一个讨论组:

  1. //创建会话,传入的数组中默认包含登录用户ID
  2. List<String> ids = new ArrayList<>();
  3. ids.add("uid1");
  4. ids.add("uid2");
  5. ids.add("uid3");
  6. WilddogIM.newConversation(ids, new WilddogIMClient.CompletionListener() {
  7. @Override
  8. public void onComplete(WilddogIMError error, Conversation wilddogConversation) {
  9. if(error==null){
  10. }else {
  11. }
  12. }
  13. });

邀请用户加入讨论组

Conversation 的接口 addMember(List<String> members) 用于拉用户进入讨论组。 讨论组内任何人都可以邀请用户加入,且无需对方同意。 例如,邀请两个用户进入讨论组:

  1. // 邀请用户入讨论组
  2. List<String> members = new ArrayList<>();
  3. ids.add("uid4");
  4. ids.add("uid5");
  5. conversation.addMember(members);

删除讨论组成员

Conversation 的接口 removeMember(List<String> members) 用于删除讨论组成员。 只有创建讨论组的用户可以删除其他讨论组成员。用户在讨论组中删除自己可以退出讨论组。 例如,删除两个讨论组成员:

  1. // 删除讨论组成员
  2. List<String> removeList = new ArrayList<>();
  3. ids.add("uid4");
  4. ids.add("uid5");
  5. conversation.removeMember(removeList);

获取讨论组成员列表

getMembers() 方法用于获取讨论组成员列表:

  1. List<String> members=getMembers();

提示:

任何讨论组成员都有权限调用此方法。

获取讨论组变更消息

当讨论组内有成员变更时,通过 WilddogIM 的协议方法可以监听获取讨论组变更消息:

  1. client.addGroupChangeListener(
  2. new WilddogIM.WilddogIMGroupChangeListener() {
  3. @Override
  4. public void memberJoined(String groupId, String owner, List<String> joinedUsers) {
  5. Log.d("groupMemberChange","memberJoined");
  6. }
  7. @Override
  8. public void memberQuit(String groupId, String quitUser) {
  9. Log.d("groupMemberChange","memberQuit");
  10. }
  11. @Override
  12. public void memberRemoved(String groupId, List<String> removeUsers) {
  13. Log.d("groupMemberChange","memberRemoved");
  14. }
  15. });