tencent cloud

文档反馈

Android&iOS&Windows&Mac

最后更新时间:2023-01-29 16:08:04

    功能描述

    群资料指的是与群组相关的一些信息,例如群 ID、群类型、群自定义字段、已加入的成员数量等,保存在 V2TIMGroupInfo 对象中。该对象由 IM SDK 创建并返回,不支持用户自定义。
    获取群资料的相关方法在核心类 V2TIMGroupManager(Android) / V2TIMManager(Group)(iOS & Mac) 中。

    获取群资料

    您可以调用 getGroupsInfo (Android / iOS & Mac / Windows) 获取群资料。该接口支持一次传入多个 groupID,批量获取多个群的群资料。

    代码示例如下:

    V2TIMManager.getGroupManager().getGroupsInfo(groupIDList, new V2TIMValueCallback<List<V2TIMGroupInfoResult>>() {
     @Override
     public void onSuccess(List<V2TIMGroupInfoResult> v2TIMGroupInfoResults) {
         // 获取群资料成功
     }
      @Override
     public void onError(int code, String desc) {
         // 获取群资料失败
     }
    });
    

    修改群资料

    您可以调用 setGroupInfo (Android / iOS & Mac / Windows) 修改群资料。

    如果您事先调用 addGroupListener 添加了群组事件监听器,群资料被修改后,全员会收到 onGroupInfoChanged (Android / iOS & Mac / Windows) 回调。

    不同类型的群组,可以修改群资料的成员角色不同:

    群组类型 可以修改群资料的成员角色
    好友工作群(Work) 所有群成员
    陌生人社交群(Public) 群主和管理员
    临时会议群(Meeting) 群主和管理员
    社群(Community) 群主和管理员
    直播群(AVChatRoom) 群主
    注意:

    不是所有的群资料 V2TIMGroupInfo 的字段都能修改,只有可写的属性才能修改。

    示例代码如下:

    // 示例代码:修改群资料
    V2TIMGroupInfo v2TIMGroupInfo = new V2TIMGroupInfo();
    v2TIMGroupInfo.setGroupID("需要修改的群 ID");
    v2TIMGroupInfo.setFaceUrl("http://xxxx");
    V2TIMManager.getGroupManager().setGroupInfo(v2TIMGroupInfo, new V2TIMCallback() {
     @Override
     public void onSuccess() {
         // 修改群资料成功
     }
     
     @Override
     public void onError(int code, String desc) {
         // 修改群资料失败
     }
    });
    

    设置群自定义字段

    群资料 V2TIMGroupInfo 中的属性 customInfo 表示群自定义字段,您同样可调用上节介绍的 API setGroupInfo 修改该字段值。

    与设置 V2TIMGroupInfo 中的其他字段不同,设置群自定义字段需要 2 个步骤:

    1. 即时通信 IM 控制台 配置群自定义字段的 key。key 为 string 类型,长度不超过 16 字节。如果不预配置 key,直接设置 key-value 会失败。配置页面如下图所示:

    2. 调用 setGroupInfo 接口设置该字段,value 长度不超过 512 字节。

    注意:

    1. 最多可设置 10 个自定义字段,在字段创建后,该字段将不可删除,也无法修改字段名与字段类型。
    2. 自定义字段主要用于 V1 和 V2 版本的兼容,如果您直接使用的是 V2 版本的 API,建议使用 initGroupAttributes 接口设置群属性,其设置更灵活(无需控制台配置),支持的存储也更大(最大支持 16K)。详情请参考 群自定义属性

    设置群消息的接收选项

    任何群成员都可以调用 setGroupReceiveMessageOpt (Android / iOS & Mac / Windows) 接口修改群消息接收选项。该设置仅针对当前操作的群成员生效,不会影响其他群成员的设置。

    V2TIMReceiveMessageOpt 的可选项有:

    消息接收选项 含义
    V2TIM_RECEIVE_MESSAGE 在线正常接收消息,离线时会有厂商的离线推送通知。
    V2TIM_NOT_RECEIVE_MESSAGE 不会接收到群消息。
    V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE 在线正常接收消息,离线不会有推送通知。

    使用不同的 V2TIMReceiveMessageOpt 可以实现群消息免打扰:

    完全不接收群内消息
    群消息接收选项设置为 V2TIM_NOT_RECEIVE_MESSAGE 后,群内的任何消息都收不到,会话列表也不会更新。

    接收群内消息但不提醒,在会话列表界面显示小圆点(不显示未读数)

    1. 群消息接收选项设置为 V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE
    2. 当群内收到新消息,会话列表需要更新时,可以通过会话 V2TIMConversation 中的 unreadCount (Android / iOS & Mac / Windows) 获取到消息未读数。
    3. 根据 V2TIMConversationrecvOpt (Android / iOS & Mac / Windows) 判断获取到的群消息接收选项为 V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE 时显示小红点而非消息未读数。
    说明:

    此方式需使用 unreadCount 功能,仅适用于好友工作群(Work)、陌生人社交群(Public)和社群(Community),直播群(AVChatRoom)、临时会议群(Meeting)暂不支持。群组类型详见 群类型介绍

    示例代码如下:

    V2TIMManager.getMessageManager().setGroupReceiveMessageOpt("groupA", V2TIMMessage.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE, new V2TIMCallback() {
     @Override
     public void onSuccess() {
         // 修改群消息接收选项成功
     }
      @Override
     public void onError(int code, String desc) {
         // 修改群消息接收选项失败
     }
    });
    

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持