浏览 SDKs · Android
平台
SDKsAndroid含商业版能力

群组概览

了解 Android SDK 中的群组概念、核心数据类型和主要能力。

复制

OpenIM 的多人聊天场景通过群组承载共享资料、成员关系与权限管控。groupID 是群组的全局唯一标识,无论是发送群消息、读取群资料、管理成员还是处理入群申请都需要使用它。当前用户聊天列表中的群会话仍由 conversationID 统一管理,两者不可混淆。

核心数据类型

类型用途
GroupInfo群名称、头像、公告、群主、验证配置、成员数和扩展字段。
GroupMembersInfo用户在指定群内的昵称、角色、禁言和入群信息。
GroupApplicationInfo入群申请及处理状态。

群成员角色使用 GroupRole 常量定义:MEMBER(普通成员)、ADMIN(管理员)、OWNER(群主)。

主要能力

状态更新

在登录前注册 OnGroupListener 监听器,接收群资料、成员和入群申请的变化。群组状态在本地以 groupID 为合并标识,群成员状态以 groupID:userID 为合并标识:

private final OnGroupListener groupListener = new OnGroupListener() {
    @Override
    public void onJoinedGroupAdded(GroupInfo group) {
        // 刷新已加入群组列表,以 group.getGroupID() 合并
    }

    @Override
    public void onJoinedGroupDeleted(GroupInfo group) {
        // 从已加入群组列表中移除对应 group.getGroupID()
    }

    @Override
    public void onGroupInfoChanged(GroupInfo group) {
        // 根据 group.getGroupID() 刷新群资料
    }

    @Override
    public void onGroupDismissed(GroupInfo group) {
        // 根据 group.getGroupID() 标记群组已解散并更新会话
    }

    @Override
    public void onGroupMemberAdded(GroupMembersInfo member) {
        // 根据 member.getGroupID() 增量添加群成员
    }

    @Override
    public void onGroupMemberDeleted(GroupMembersInfo member) {
        // 根据 member.getGroupID() 和 member.getUserID() 移除群成员
    }

    @Override
    public void onGroupMemberInfoChanged(GroupMembersInfo member) {
        // 根据 member.getGroupID() 和 member.getUserID() 更新群成员状态
    }

    @Override
    public void onGroupApplicationAdded(GroupApplicationInfo application) {
        // 刷新入群申请列表
    }

    @Override
    public void onGroupApplicationAccepted(GroupApplicationInfo application) {
        // 刷新入群申请列表
    }

    @Override
    public void onGroupApplicationRejected(GroupApplicationInfo application) {
        // 刷新入群申请列表
    }

    @Override
    public void onGroupApplicationDeleted(GroupApplicationInfo application) {
        // 刷新入群申请列表
    }
};

public void registerGroupListener() {
    OpenIMClient.getInstance().groupManager.setOnGroupListener(groupListener);
}

群组管理 API 的成功回调表示本地或服务端请求执行成功。实际界面列表与成员缓存应结合监听器回调增量更新,或在必要时重新发起分页查询进行校准。