美文网首页
Android 融云用户头像、昵称不显示

Android 融云用户头像、昵称不显示

作者: 天青色等Y雨 | 来源:发表于2019-09-26 11:05 被阅读0次

    \color{#000042}{ 融云提供了两种设置用户信息的方式:}

    \color{#000042}{ 一. 在消息中携带用户信息,增加消息长度,不建议使用,还需要}
    \color{#000042}{和IOS配合}

    RongIM.getInstance().setMessageAttachedUserInfo(true);
    RongIM.getInstance().setCurrentUserInfo(new UserInfo(...));
    

    \color{#000042}{二.给融云设置一个Provider,在会话列表和会话界面,融云会自动}
    \color{#000042}{调用Provider的getUserInfo()方法获取、显示用户信息}

    \color{#000042}{getOtherInfo()是App服务器提供的根据用户id获取用户信息的接}
    \color{#000042}{口方法}

        public void setRCProvider() {
            RongIM.setUserInfoProvider(new RongIM.UserInfoProvider() {
                @Override
                public UserInfo getUserInfo(String userId) {
                    return getOtherInfo(userId);
                }
            }, true);
        }
    
        private UserInfo getOtherInfo(final String userId) {
            HttpClient.getOtherInfo(userId, new ProgressSubscriber<InvitePersonResultBean.DataBean>(getApp()) {
                @Override
                public void onNext(InvitePersonResultBean.DataBean dataBean) { 
                    String imgHeadUrl = FrescoUtil.getImageUrl(dataBean.getHead_img());
                    UserInfo rongUserInfo = new UserInfo(userId, dataBean.getUsername(), Uri.parse(imgHeadUrl));
                    //因为是异步任务,所以在获取到用户信息之后需要刷讯融云缓存
                    RongIM.getInstance().refreshUserInfoCache(rongUserInfo);
                }
            });
            return null;
        }
    
    注意:如果设置之后还是不显示,检测一下你设置的UserInfo 中的三个参数值是否是一一对应的!!
    

    相关文章

      网友评论

          本文标题:Android 融云用户头像、昵称不显示

          本文链接:https://www.haomeiwen.com/subject/qxzsectx.html