浏览 SDKs · Android
SDKsAndroid

获取指定用户资料

使用 getUsersInfo() 按 userID 批量查询用户公开资料。

复制

getUsersInfo() 根据 userID 列表返回用户的公开资料,适合展示好友候选人或陌生人资料卡。该方法只读取公开资料,不返回当前账号为好友设置的备注等关系字段。

List<String> userIDs = Arrays.asList("user_a", "user_b");

OpenIMClient.getInstance().userInfoManager.getUsersInfo(
    new OnBase<List<PublicUserInfo>>() {
        @Override
        public void onSuccess(List<PublicUserInfo> users) {
            for (PublicUserInfo user : users) {
                publicUserStore.put(user.getUserID(), user);
            }
        }

        @Override
        public void onError(int code, String error) {
            recordUserQueryFailure(code, error);
        }
    },
    userIDs
);

调用前应去除空值和重复 ID,并控制单次请求的数量。成功 callback 返回 List<PublicUserInfo>,主要字段包括 userIDnicknamefaceURLexcreateTime。查询不会触发 OnUserListener,需要刷新资料时应重新调用并按 userID 合并结果。

返回结果

字段说明
userIDOpenIM 用户 ID,也是本地缓存的稳定 key。
nickname账号级公开昵称。
faceURL账号级公开头像地址。
ex账号级公开扩展字符串,格式由业务约定。
createTime用户资料创建时间。

PublicUserInfo 中的资料不能用于覆盖好友备注、置顶状态或群内昵称。展示好友时应使用 FriendInfo,展示群成员时应使用群成员模型。

按昵称、手机号或邮箱搜索用户属于业务服务能力,应由可信后端完成搜索和权限校验,再把候选 userID 交给客户端查询公开资料。

资料刷新

查询成功后,以返回结果更新公开资料快照。打开资料卡、用户主动刷新、断线重连或业务后端通知资料变化时,可以重新调用该方法校准数据。OnUserListener.onSelfInfoUpdated 只表示当前登录用户资料变化,不能作为其他用户资料变化事件。