使用IMKit,CallKit 群组视频通话选择联系人页面为空

发布时间: 2021-11-17 14:49

回答:

群组视频通话选择联系人页面需要设置下用户信息


4.xsdk

RongCallKit.setGroupMemberProvider(new RongCallKit.GroupMembersProvider() {
    @Override
    public ArrayList<String> getMemberList(String groupId, RongCallKit.OnGroupMembersResult result) {
        //可以根据groupId 获取群组内成员id 并返回
        ArrayList<String> list=new ArrayList();
        list.add("userid1");
        list.add("userid2");
        list.add("userid3");
        result.onGotMemberList(list);
        return list;
    }
});
RongIM.setUserInfoProvider(new RongIM.UserInfoProvider() {
    @Override
    public UserInfo getUserInfo(String s) {
        UserInfo userInfo=new UserInfo(s,"用户"+s,uri);
        RongIM.getInstance().refreshUserInfoCache(userInfo);
        return userInfo;
    }
},true);


5.xsdk

第一种:

    //使用这个方法会展示选择联系人页面,但是不会展示用户名
RongCallKit.setGroupMemberProvider(new RongCallKit.GroupMembersProvider() {
    @Override
    public ArrayList<String> getMemberList(String groupId, RongCallKit.OnGroupMembersResult result) {
        //可以根据groupId 获取群组内成员id 并返回
        ArrayList<String> list=new ArrayList();
        list.add("userid1");
        list.add("userid2");
        list.add("userid3");
        result.onGotMemberList(list);
        return list;
    }
});

配合设置用户信息提供者使用,即可展示用户名

RongUserInfoManager.getInstance().setUserInfoProvider(new UserDataProvider.UserInfoProvider() {
    @Override
    public UserInfo getUserInfo(String s) {
        UserInfo userInfo=new UserInfo(s,"小花1"+s, Uri.parse(""));


        return userInfo;
    }
},true);


第二种:

RongIM.getInstance().setGroupMembersProvider(new RongMentionManager.IGroupMembersProvider() {
    @Override
    public void getGroupMembers(String s, RongMentionManager.IGroupMemberCallback iGroupMemberCallback) {
    
        //s 是群组id 可以根据群组id 获取群组内用户id,根据id获取用户信息并返回
        //代码如下
        List<UserInfo> list=new ArrayList();
        UserInfo userInfo=new UserInfo("userid1","小花22", Uri.parse(""));
        ...
        list.add(userInfo);
        list.add...
        
        iGroupMemberCallback.onGetGroupMembersResult(list);
    }
});

也可以配合设置群组用户信息提供者使用,会展示群组用户信息提供者返回的用户信息

 RongUserInfoManager.getInstance().setGroupUserInfoProvider(new UserDataProvider.GroupUserInfoProvider() {
    @Override
    public GroupUserInfo getGroupUserInfo(String s, String s1) {
    // s 为群组id s1 为群成员id
        GroupUserInfo groupUserInfo = new GroupUserInfo(s, s1, "小花"+s1);

        return groupUserInfo;
    }
},true);


注意:如果用户实现的是不依赖群组的实时音视频通话的话,只能使用方法一

安卓端如何实现不依赖群组的实时音视频通话?https://support.rongcloud.cn/ks/Njcy