全部文档

用户信息 ( 最近更新时间:2020-04-28 19:00:00 )

# 设置用户信息

开发者与融云服务器建立连接之后,应该设置用户信息,用于SDK显示和发送。融云服务端不提供用户信息托管维护服务. 设置的用户信息将存储到本地数据库. 当会话列表、会话界面等需要用户信息的时候会优先从数据库里加载, 如果数据库中无此用户信息, 则会从 Provider 回调中获取.

开发者可使用下面方式设置用户信息。

# 同步设置

参数说明

参数 类型 必填 说明
userInfoProvider UserInfoProvider 用户信息提供者
isCacheUserInfo boolean 是否缓存用户信息. true 缓存, false 不缓存
1. 当设置 true 后, 优先从缓存中获取用户信息.
2. 更新用户信息, 需调用 RongIM.getInstance().refreshUserInfoCache(userInfo)

代码示例

RongIM.setUserInfoProvider(new RongIM.UserInfoProvider() {

    /**
     * 获取设置用户信息. 通过返回的 userId 来封装生产用户信息.
     * @param userId 用户 ID 
     */
    @Override
    public UserInfo getUserInfo(String userId) {
        UserInfo userInfo = new UserInfo(userId, "userId 对应的名称", Uri.parse("userId 对应的头像地址"))
        return userInfo;
    }

}, true);
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
# 异步设置
  1. getUserInfo 方法中返回 null.
RongIM.setUserInfoProvider(new RongIM.UserInfoProvider() {

    /**
     * 获取设置用户信息. 通过返回的 userId 来封装生产用户信息.
     * @param userId 用户 ID 
     */
    @Override
    public UserInfo getUserInfo(String userId) {
        // 执行异步请求逻辑方法
        return null;
    }

}, true);
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
  1. 调用刷新方法, 刷新用户信息缓存
UserInfo userInfo = new UserInfo(userId, "userId 对应的名称", Uri.parse("userId 对应的头像地址"))
RongIM.getInstance().refreshUserInfoCache(userInfo);

已复制
1
2
3

# 获取用户信息

开发者可通过下面方法获取 SDK 中缓存的用户信息。此处获取的是开发者通过 设置用户信息 接口传递给 SDK 的用户信息,如果没有传递,此处会返回空。

参数说明

输入参数说明

参数 类型 必填 说明
userId String 用户 Id

返回值

类型 说明
UserInfo 用户信息

代码示例

String userId = "用户 Id"
UserInfo userInfo = RongUserInfoManger.getInstance().getUserInfo(userId)
已复制
1
2

# 删除用户信息

开发者可通过下面方法清空 SDK 缓存的用户信息。

代码示例

RongUserInfoManager.getInstance().uninit();
已复制
1

# 刷新用户信息

开发者可通过下面方法更新 SDK 缓存的用户信息。

参数说明

参数 类型 必填 说明
userInfo UserInfo 用户信息

代码示例

UserInfo userInfo = new UserInfo(userId, "userId 对于的名称", Uri.parse("userId 对于头像地址"));
RongIM.getInstance().refreshUserInfoCache(userInfo);

已复制
1
2
3

文档是否解决您的问题 ?

如果遇到产品相关问题,您可 提交工单 寻求帮助