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

2019-09-26  本文已影响0人  天青色等Y雨

\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 中的三个参数值是否是一一对应的!!
上一篇下一篇

猜你喜欢

热点阅读