差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
im:android:basics:group [2018/11/02 10:29]
huanxinfudh
im:android:basics:group [2022/06/28 07:16] (当前版本)
jennifer.zeng [屏蔽群消息]
行 1: 行 1:
 ====== 群组管理 ====== ====== 群组管理 ======
 +
 +更新时间:2021-12-31
 +
 +新版文档见:[[ccim:​android:​group1|群组]]。
 +
 +----
 +
 许多群组操作前需要鉴别权限,包括当前用户是否在群里面,是否拥有管理员或者所有者权限。 许多群组操作前需要鉴别权限,包括当前用户是否在群里面,是否拥有管理员或者所有者权限。
-建议用户登录成功后,调用EMClient.getInstance().groupManager().getJoinedGroupsFromServer();​+建议用户登录成功后,调用 EMClient.getInstance().groupManager().getJoinedGroupsFromServer();​
 刷新本地群组列表,确保鉴别权限正常工作。 刷新本地群组列表,确保鉴别权限正常工作。
  
-SDK3.3.0 release新增许多群组操作的API,请查看链接[[im:​200androidclientintegration:​3.3.0apichange|3.3.0api修改]]+SDK 3.3.0 release 新增许多群组操作的 API,请查看链接 [[im:​200androidclientintegration:​3.3.0apichange|3.3.0 api 修改]] 
 + 
 +**注意**:''​1、群主+管理员 一起一共不超过 100 个,也就是不超过 99 个管理员。2、群组成员最大数(包括群主)取决于所选择的版本,不同版本最大数不同。''​
 ---- ----
 ===== 收发消息 ===== ===== 收发消息 =====
  
-收发消息及聊天记录相关等见[[im:​android:​basics:​message|消息]]。+收发消息及聊天记录相关内容见 [[im:​android:​basics:​message|消息]]。
  
 ===== 新建群组 ===== ===== 新建群组 =====
行 17: 行 26:
  * @param groupName 群组名称  * @param groupName 群组名称
  * @param desc 群组简介  * @param desc 群组简介
- * @param allMembers 群组初始成员,如果只有自己传空数组即可+ * @param allMembers 群组初始成员,如果只有自己传空数组即可(最多可以传100个成员)
  * @param reason 邀请成员加入的reason  * @param reason 邀请成员加入的reason
- * @param option 群组类型选项,可以设置群组最大用户数(默认200)及群组类型@see {@link EMGroupStyle} + * @param option 群组类型选项,可以设置群组最大用户数(取决于所选择的版本,不同版本最大数不同)及群组类型@see {@link EMGroupStyle} 
- ​* ​              ​option.inviteNeedConfirm表示邀请对方进群是否需要对方同意,默认是需要用户同意才能加+ ​* ​              ​option.inviteNeedConfirm表示邀请对方进群是否需要对方同意,默认是被邀请方自动进群。
  ​* ​              ​option.extField创建群时可以为群组设定扩展字段,方便个性化订制。  ​* ​              ​option.extField创建群时可以为群组设定扩展字段,方便个性化订制。
  * @return 创建好的group  * @return 创建好的group
行 31: 行 40:
 EMClient.getInstance().groupManager().createGroup(groupName,​ desc, allMembers, reason, option); EMClient.getInstance().groupManager().createGroup(groupName,​ desc, allMembers, reason, option);
 </​code>​ </​code>​
 +注:如果option.inviteNeedConfirm设置为false,​即直接加被邀请人进群。在此情况下,被邀请人设置非自动进群是不起作用的。
 +
  
 option里的GroupStyle分别为: option里的GroupStyle分别为:
行 169: 行 180:
 List<​String>​ members = group.getMembers();//​获取内存中的群成员 List<​String>​ members = group.getMembers();//​获取内存中的群成员
 List<​String>​ adminList = group.getAdminList();//​获取管理员列表 List<​String>​ adminList = group.getAdminList();//​获取管理员列表
 +boolean isMsgBlocked = group.isMsgBlocked();//​获取是否已屏蔽群组消息
 ... ...
 </​code>​ </​code>​
行 175: 行 187:
 ===== 屏蔽群消息 ===== ===== 屏蔽群消息 =====
  
-不允许 Owner 权限的调用。+
 <code java> <code java>
 /** /**
行 247: 行 259:
  */  */
 EMClient.getInstance().groupManager().muteGroupMembers(String groupId, List<​String>​ muteMembers,​ long duration);//​需异步处理 EMClient.getInstance().groupManager().muteGroupMembers(String groupId, List<​String>​ muteMembers,​ long duration);//​需异步处理
-目前duration参数不起作用,暂时只支持永久禁言和解除禁言两种操作,​ duration建议输入12*30*24*60*60*1000 
 </​code>​ </​code>​
  
行 262: 行 273:
 EMClient.getInstance().groupManager().unMuteGroupMembers(String groupId, List<​String>​ members);//​需异步处理 EMClient.getInstance().groupManager().unMuteGroupMembers(String groupId, List<​String>​ members);//​需异步处理
 </​code>​ </​code>​
 +
 +
  
 ==== 获取群成员禁言列表 ==== ==== 获取群成员禁言列表 ====
行 274: 行 287:
  */  */
 EMClient.getInstance().groupManager().fetchGroupMuteList(String groupId, int pageNum, int pageSize) EMClient.getInstance().groupManager().fetchGroupMuteList(String groupId, int pageNum, int pageSize)
 +</​code>​
 +
 +
 +==== 开启和关闭全员禁言 ====
 +owner和管理员可以开启和关闭全员禁言。
 +<code java>
 +     /**
 +     * \~chinese
 +     * 禁言所有成员
 +     * @param groupId 群组id
 +     */
 +    public void muteAllMembers(final String groupId, final EMValueCallBack<​EMGroup>​ callBack)
 +    ​
 +    /**
 +     * \~chinese
 +     * 解除所有成员禁言
 +     * @param groupId 群组id
 +     */
 +    public void unmuteAllMembers(final String groupId, final EMValueCallBack<​EMGroup>​ callBack)
 +</​code>​
 +==== 白名单管理 ====
 +可以将用户添加到白名单中,用户白名单在管理员开启了全员禁言时生效,可以运行白名单用户发出消息。
 +另外可以将用户移出白名单,检查自己是否在白名单中以及获取白名单列表。
 +<code java>
 +         /**
 + * \~chinese
 + * 添加用户到白名单
 + * @param groupId 群组id
 + * @param members 成员id列表
 + */
 + public void addToGroupWhiteList(final String groupId, final List<​String>​ members, final EMCallBack callBack)
 +
 +        /**
 + * \~chinese
 + * 将用户从白名单移除
 + * @param groupId 群组id
 + * @param members 成员id列表
 + */
 + public void removeFromGroupWhiteList(final String groupId, final List<​String>​ members, final EMCallBack callBack)
 +
 +        /**
 + * \~chinese
 + * 检查自己是否在白名单中
 + * @param groupId 群组id
 + */
 + public void checkIfInGroupWhiteList(final String groupId, EMValueCallBack<​Boolean>​ callBack)
 +
 +        /**
 + * \~chinese
 + * 从服务器获取白名单成员列表
 + * @param groupId 群组id
 + */
 + public void fetchGroupWhiteList(final String groupId, final EMValueCallBack<​List<​String>>​ callBack) ​
 </​code>​ </​code>​
  
行 408: 行 474:
     public void onMuteListRemoved(String groupId, final List<​String>​ mutes) {     public void onMuteListRemoved(String groupId, final List<​String>​ mutes) {
  //​成员从禁言列表里移除通知  //​成员从禁言列表里移除通知
 +    }
 +    ​
 +    @Override
 +    public void onWhiteListAdded(String groupId, List<​String>​ whitelist) {
 +          //​成员被加到白名单中
 +    }
 +
 +    @Override
 +    public void onWhiteListRemoved(String groupId, List<​String>​ whitelist) {
 +         //​成员从白名单中被移除
 +    }
 +
 +    @Override
 +    public void onAllMemberMuteStateChanged(String groupId, boolean isMuted) {
 +          //​全员禁言是否开启
     }     }