融云集成2--用户信息在会话列表和会话界面的显示

时间:2017-02-22 09:34:04

参考地址1:https://developer.rongcloud.cn/ticket/info/Dj+76JSLR636HZ+8sA==?type=1

参考地址2:http://blog.csdn.net/qq_19986309/article/details/46375291

private void initRongIM() {
        // TODO: 2017/2/21 得到服务器返回的融云token
        //25 测试账号1  我这里用的是两个测试账号的token!
        connect("4X5oWsL7REXUVkjXF3qyexZH3nT1lHTNKCRIatc5prBNBY2T9eVm+n61BZ+2Hj22BZQ2LrCJ0KbSrdT7RZmjlg==");
        //198 测试账号2
        //connect("pRuqH7mzNkXyqkZrwCDyO55NNZ5j5KSOISEodYMqg/VCynvT8JfHQVjBNEwUI6absuKmSQ5MJsNwcdKW2nwPdA==");

        RongIM.setUserInfoProvider(new RongIM.UserInfoProvider() {
            @Override
            public UserInfo getUserInfo(String id) {
                TokenDao tokenDao = new TokenDao(HomeActivity.this);
                String headImg = tokenDao.querytoken("head_img");
                String userId = tokenDao.querytoken("pk_user_id");
                String nickName = tokenDao.querytoken("nick_name");
                Log.d(TAG, "getUserInfo: "+userId+nickName+headImg);
                UserInfo userInfo = new UserInfo(userId, nickName, Uri.parse(headImg));

                RongIM.getInstance().refreshUserInfoCache(userInfo);
                return userInfo;//返回当前用户信息,这里的id是用户id,记住这里不仅仅返回当前登录用户的信息,还可以返回正在聊天的好友信息,会话列表以及会话中好友昵称、头像可以通过这里得到。不过我暂时只返回当前登录的用户信息,我们还可以把用户的好友信息都保存在本地数据库,然后遍历比较id相同就返回这个用户的信息!
            }
        }, true);

       //如果只实现上面这个方法,并且只返回当前登录用户的信息,那么,会话界面只能获取到自己的昵称和头像,无法显示对方的头像和昵称。我们可以通过下面这种方式设置在消息中附带用户信息,这样当对方发消息过来的时候会附带他的用户信息,这样是可以实现会话界面显示昵称和头像的,但是每次消息中都附带用户东西信息,感觉还是可以优化。
       RongIM.getInstance().setMessageAttachedUserInfo(true);
    }
作者:u010378579 发表于2017/2/22 11:34:04 原文链接
阅读:21 评论:0 查看评论