im即时通讯:android:群组管理

异步方法

 /**
     * 创建群组
     *
     * @param groupName     群名
     * @param description   群描述
     * @param allMembers    初始成员(若为自己则传空数组)
     * @param reason        邀请成员入群的reason
     * @param options       群模式{# DTConstant.GroupMode}
     * @param isInviteAgree 邀请是否需要用户同意
     * @param callBack      回调
     */

DTClient.getInstance().groupManager().createGroup(groupName, description,isInviteAgree, allMembers, reason, options,
                    new DTValueCallBack<DTGroup>() {
                        @Override
                        public void onSuccess(DTGroup value) {
                           
                        }

                        @Override
                        public void onError(DefinedException e) {
                          
                        }
                    });
                    

异步方法

 /**
     * 根据群id搜索公开群
     *
     * @param groupId         群id
     * @param dtValueCallBack 回调
     */

 DTClient.getInstance().groupManager().fetchGroup(groupId, new DTValueCallBack<DTGroup>() {
                @Override
                public void onSuccess(DTGroup value) {
               
                }

                @Override
                public void onError(DefinedException e) {
                 
                }
            });
                    

异步方法

   /**
     * 添加群组管理员权限
     * @param groupId 群id
     * @param admin 对方用户名
     * @param callBack
     */
  DTClient.getInstance().groupManager().addGroupAdmin(groupId, admin, new DTCallBack() {
                        @Override
                        public void onSuccess() {
                         
                        }

                        @Override
                        public void onProgress(int progress) {

                        }

                        @Override
                        public void onError(DefinedException e) {
                     
                        }
                    });

异步方法

   /**
     * 移除群组管理员权限
     * @param groupId 群id
     * @param admin 对方用户名
     * @param callBack
     */
 DTClient.getInstance().groupManager().removeGroupAdmin(groupId, admin, new DTCallBack() {
                @Override
                public void onSuccess() {
              
                }

                @Override
                public void onProgress(int progress) {

                }

                @Override
                public void onError(DefinedException e) {
                 
                }
            });

异步方法

    /**
     * 转让群组
     *
     * @param groupId     群id
     * @param newUserName 新群主用户名
     */
    DTClient.getInstance().groupManager().changeOwner(groupId, newUserName new DTCallBack() {
                @Override
                public void onSuccess() {
                
                }

                @Override
                public void onProgress(int progress) {

                }

                @Override
                public void onError(DefinedException e) {
             
                }
            });

异步方法

    /**
     * 邀请好友加入群组
     *
     * @param groupId   群id
     * @param newMember 新成员用户名
     */
    DTClient.getInstance().groupManager().inviteUsersToGroup(groupId, newMember, new DTCallBack() {
                    @Override
                    public void onSuccess() {
                        
                    }

                    @Override
                    public void onProgress(int progress) {

                    }

                    @Override
                    public void onError(DefinedException e) {

                    }
                });

异步方法

    /**
     * 群主踢人
     *
     * @param groupId 群组id
     * @param kickUsers 被踢者用户名
     * @param callBack  回调码
     */
     DTClient.getInstance().groupManager().removeUserFromGroup(groupId, kickUsers, new DTCallBack() {
                    @Override
                    public void onSuccess() {
                        
                    }

                    @Override
                    public void onProgress(int progress) {

                    }

                    @Override
                    public void onError(DefinedException e) {

                    }
                });
                

异步方法

    /**
     * 申请加入公开群
     *
     * @param groupId   群id
     * @param applyInfo 申请信息
     * @param callBack  回调
     */
    DTClient.getInstance().groupManager().applyJoinToGroup(groupId, applyInfo, new DTCallBack() {
                @Override
                public void onSuccess() {
                    
                }

                @Override
                public void onProgress(int progress) {

                }

                @Override
                public void onError(DefinedException e) {

                }
            });
            

异步方法

     /**
      退出群组
     * @param groupId  群id
     * @param callBack  回调码
     */
    
  DTClient.getInstance().groupManager().leaveGroup(groupId, new DTCallBack() {
                    @Override
                    public void onSuccess() {
               
                    }

                    @Override
                    public void onProgress(int progress) {

                    }

                    @Override
                    public void onError(DefinedException e) {
                       
                    }
                });
            

异步方法

     /**
     *群主解散该群
     * @param groupId  群id
     * @param callBack  回调码
     */
    
  DTClient.getInstance().groupManager().destroyGroup(groupId, new DTCallBack() {
                    @Override
                    public void onSuccess() {
               
                    }

                    @Override
                    public void onProgress(int progress) {

                    }

                    @Override
                    public void onError(DefinedException e) {
                       
                    }
                });
            

异步方法

     /**
     * 从服务器分页获取群组列表
     *
     * @param currentPage            当前页数
     * @param pageSize               一页数量
     * @param dtGroupDTValueCallBack 回调
     */
    
  DTClient.getInstance().groupManager().getJoinedGroupsFromServer(currentPage, pageSize, new DTValueCallBack<List<DTGroup>>() {
            @Override
            public void onSuccess(List<DTGroup> value) {
                
            }

            @Override
            public void onError(DefinedException e) {

            }
        });
            

异步方法

     /**
     * 修改群昵称
     *
     * @param groupId 群组id
     * @param newName 新的昵称
     * @param callBack 回调码
     */
  DTClient.getInstance().groupManager().changeGroupName(groupId, newName, new DTCallBack() {
            @Override
            public void onSuccess() {
                
            }

            @Override
            public void onProgress(int progress) {

            }

            @Override
            public void onError(DefinedException e) {

            }
        });
            

异步方法

     /**
     * 修改群昵称
     *
     * @param groupId 群组id
     * @param newDescription 新的群描述
     * @param callBack 回调码
     */
  DTClient.getInstance().groupManager().changeGroupDescription(groupId, newDescription, new DTCallBack() {
            @Override
            public void onSuccess() {
                
            }

            @Override
            public void onProgress(int progress) {

            }

            @Override
            public void onError(DefinedException e) {

            }
        });
            

异步方法

/**
     * 获取群信息以及群成员列表信息
     * @param groupId  群组id
     * @param fetchMembers 是否请求成员列表
     * @param callBack 回调码
     */
DTClient.getInstance().groupManager().getGroupFromServer(groupId, fetchMembers, new DTValueCallBack<DTGroup>() {
            @Override
            public void onSuccess(DTGroup value) {
      
            }

            @Override
            public void onError(DefinedException e) {
           
            }
        });
            

异步方法

    /**
     * 是否屏蔽群消息
     *
     * @param groupId  群id
     * @param blockMessage 是否屏蔽消息
     * @param callBack
     */
   DTClient.getInstance().groupManager().isBlockGroupMessage(groupId, blockMessage, new DTValueCallBack<Boolean>() {
                @Override
                public void onSuccess(Boolean value) {
              
                }

                @Override
                public void onError(DefinedException e) {
                 
                }
            });
            

异步方法

    /**
     * 添加至群组黑名单
     *
     * @param groupId 群id
     * @param blockUser 加入群黑名单用户名
     * @param callBack  回调码
     */
    DTClient.getInstance().groupManager().blockUser(groupId, blockUser , new DTCallBack() {
                    @Override
                    public void onSuccess() {
                   
                    }

                    @Override
                    public void onProgress(int progress) {

                    }

                    @Override
                    public void onError(DefinedException e) {
                 
                    }
                });
            

异步方法

   /**
     * 移出群黑名单
     *
     * @param groupId  群组id
     * @param blockUser  加入群黑名单用户名
     * @param callBack  回调码
     */

      DTClient.getInstance().groupManager().unblockUser(groupId, blockUser, new DTCallBack() {
                    @Override
                    public void onSuccess() {
                     
                    }

                    @Override
                    public void onProgress(int progress) {

                    }
                    
                    

                    @Override
                    public void onError(DefinedException e) {
                 
                    }
                });
            

异步方法

    /**
     * 分页获取服务器黑名单列表
     *
     * @param groupId  群组id
     * @param currentPage  当前页数
     * @param pageSize  一页获取的数量
     * @param callBack  回调码
     */  

      DTClient.getInstance().groupManager().fetchBlockedUsersFromServer(groupId, currentPage, pageSize, new DTValueCallBack<List<DTContact>>() {
            @Override
            public void onSuccess(List<DTContact> value) {
                
            }

            @Override
            public void onError(DefinedException e) {

            }
        });
            

同步方法

    /**
     * 获取本地黑名单列表
     *
     * @param groupId  群组id
     * @return
     */ 

     List<DTContact> blockedUsersFromDb = DTClient.getInstance().groupManager().getBlockedUsersFromDb(groupId);
            

异步方法

    /**
     * 添加群组禁言
     *
     * @param groupId  群组id
     * @param mute  添加禁言用户名
     * @param callBack  回调码
     */

      DTClient.getInstance().groupManager().muteGroupMember(groupId, mute, new DTCallBack() {
                        @Override
                        public void onSuccess() {
                           
                        }

                        @Override
                        public void onProgress(int progress) {

                        }

                        @Override
                        public void onError(DefinedException e) {
                        
                        }
                    });

异步方法

 /**
     * 移除群组禁言
     *
     * @param groupId  群组id
     * @param mute  移除禁言用户名
     * @param callBack  回调码
     */ 
     DTClient.getInstance().groupManager().unMuteGroupMember(groupId, mute, new DTCallBack() {
                        @Override
                        public void onSuccess() {
                            LoadingUtil.getInstance().hideLoading();
                            ToastUtil.showToast("你成功解除" + member.getContact().getNickname() + "用户的禁言");
                        }

                        @Override
                        public void onProgress(int progress) {

                        }

                        @Override
                        public void onError(DefinedException e) {
                            LoadingUtil.getInstance().hideLoading();
                            ToastUtil.showToast(e.toString());
                        }
                    });

异步方法

    /**
     * 更新群组公告
     *
     * @param groupId  群组id
     * @param notice  公告内容
     * @param callBack  回调码
     */
      DTClient.getInstance().groupManager().updateGroupAnnouncement(groupId,
                            notice, new DTCallBack() {
                                @Override
                                public void onSuccess() {
                                    
                                }

                                @Override
                                public void onProgress(int progress) {

                                }

                                @Override
                                public void onError(DefinedException e) {

                                }
                            });

异步方法

    /**
     * 获取群公告
     *
     * @param groupId  群组id
     * @param callBack  回调码
     */
      DTClient.getInstance().groupManager().fetchGroupAnnouncement(groupId, new DTCallBack() {
                                @Override
                                public void onSuccess() {
                                    
                                }

                                @Override
                                public void onProgress(int progress) {

                                }

                                @Override
                                public void onError(DefinedException e) {

                                }
                            });

异步方法

    /**
     * 是否开启屏蔽群推送
     *
     * @param groupId      群组ID
     * @param isGroupPush  是否开启屏蔽群推送
     * @param callbackCode 回调码
     */
       DTClient.getInstance().groupManager().isShieldGroupPush(Integer.valueOf(groupId, isGroupPush, new DTCallBack() {
                @Override
                public void onSuccess() {

                }

                @Override
                public void onProgress(int progress) {

                }

                @Override
                public void onError(DefinedException e) {

                }
            });

异步方法

     /**
     * 同意或拒绝加入群组
     *
     * @param groupId    群组id
     * @param toUserName 邀请人用户名
     * @param status     是否同意入群
     * @param callBack   回调码
     */
   DTClient.getInstance().groupManager().joinGroupAgreeOrRefuse(groupId,toUserName, status, new DTCallBack() {
                @Override
                public void onSuccess() {
           
                }

                @Override
                public void onProgress(int progress) {

                }

                @Override
                public void onError(DefinedException e) {
         
                }
            });

异步方法

     /**
     * 同意或拒绝加入群组
     *
     * @param groupId    群组id
     * @param toUserName 邀请人用户名
     * @param status     是否同意入群
     * @param callBack   回调码
     */
  DTClient.getInstance().groupManager().agreeOrRefuseJoinGroupApply(groupId, toUserName, status, new DTCallBack() {
                @Override
                public void onSuccess() {

                }

                @Override
                public void onProgress(int progress) {

                }

                @Override
                public void onError(DefinedException e) {
              
                }
            });
   DTClient.getInstance().groupManager().addGroupChangeListener(new DTGroupChangeListener {


    /**
     * 接收到加入群组邀请
     *
     * @param groupId   群id
     * @param groupName 群名
     * @param inviter   邀请用户
     * @param nickName  邀请用户昵称
     */
    void onInvitationReceived(String groupId, String groupName, String inviter, String nickName);

    /**
     * 用户申请加入群
     *
     * @param groupId   群id
     * @param groupName 群名
     * @param proposer  申请用户名
     * @param nickName  申请用户昵称
     * @param reason    申请原因
     */
    void onRequestToJoinReceived(String groupId, String groupName, String proposer, String nickName, String reason);

    /**
     * 加群申请被同意
     *
     * @param groupId
     * @param groupName
     * @param accepter
     * @param nickName
     */
    void onRequestToJoinAccepted(String groupId, String groupName, String accepter, String nickName);

    /**
     * 加群申请被拒绝
     *
     * @param groupId
     * @param groupName
     * @param decliner
     * @param nickName
     */
    void onRequestToJoinDeclined(String groupId, String groupName, String decliner, String nickName);

    /**
     * 群组邀请被同意
     *
     * @param groupId
     * @param groupName
     * @param inviter
     * @param nickName
     */
    void onInvitationAccepted(String groupId, String groupName, String inviter, String nickName);

    /**
     * 群组邀请被拒绝
     *
     * @param groupId
     * @param groupName
     * @param invitee
     * @param nickName
     */
    void onInvitationDeclined(String groupId, String groupName, String invitee, String nickName);

    /**
     * 接收到入群邀请自动加入到群组
     *
     * @param groupId
     * @param groupName
     * @param inviter
     * @param nickName
     */
    void onAutoAcceptInvitationFromGroup(String groupId, String groupName, String inviter, String nickName);

    /**
     * 成员被禁言
     *
     * @param groupId
     * @param groupName
     * @param mute
     * @param nickName
     */
    void onMuteUserAdded(String groupId, String groupName, String mute, String nickName);

    /**
     * 成员从禁言列表里移除
     *
     * @param groupId
     * @param groupName
     * @param mute
     * @param nickName
     */
    void onMuteUserRemoved(String groupId, String groupName, String mute, String nickName);

    /**
     * 增加管理员
     *
     * @param groupId
     * @param groupName
     * @param administrator
     * @param nickName
     */
    void onAdminAdded(String groupId, String groupName, String administrator, String nickName);

    /**
     * 管理员被移除
     *
     * @param groupId
     * @param groupName
     * @param administrator
     * @param nickName
     */
    void onAdminRemoved(String groupId, String groupName, String administrator, String nickName);

    /**
     * 加入黑名单
     *
     * @param groupId
     * @param groupName
     * @param blackUser
     * @param nickName
     */
    void onBlockUserAdded(String groupId, String groupName, String blackUser, String nickName);

    /**
     * 群所有者变动
     *
     * @param groupId
     * @param groupName
     * @param newOwner
     * @param newNickName
     * @param oldOwner
     * @param oldNickName
     */
    void onOwnerChanged(String groupId, String groupName, String newOwner, String newNickName, String oldOwner, String oldNickName);

    /**
     * 群组加入新成员
     *
     * @param groupId
     * @param groupName
     * @param member
     * @param nickName
     */
    void onMemberJoined(final String groupId, String groupName, String member, String nickName);

    /**
     * 群成员退出
     *
     * @param groupId
     * @param groupName
     * @param member
     * @param nickName
     */
    void onMemberExited(final String groupId, String groupName, final String member, String nickName);

    /**
     * 群成员被移出群组
     *
     * @param groupId
     * @param groupName
     * @param member
     * @param nickName
     */
    void onKickMember(final String groupId, String groupName, final String member, String nickName);


    /**
     * 群公告变动
     *
     * @param groupId
     * @param groupName
     * @param announcement
     */
    void onAnnouncementChanged(String groupId, String groupName, String announcement);

    /**
     * 群组已解散
     *
     * @param groupId
     * @param groupName
     */
    void onDissolved(String groupId, String groupName);
    
   
    记得在不需要的时候移除listener,如在activity的onDestroy()时
    DTClient.getInstance().groupManager().removeGroupChangeListener(this);
            

  • im即时通讯/android/群组管理.txt
  • 最后更改: 2019/07/08 12:45
  • (外部编辑)