浏览 SDKs · Android
SDKsAndroid

更新当前用户资料

使用 setSelfInfo() 更新当前用户的昵称、头像或扩展资料。

复制

使用 UserInfoReq 只设置实际需要修改的字段。SDK 序列化请求时会忽略 null 字段。

UserInfoReq request = new UserInfoReq();
request.setNickname(displayName.trim());
request.setFaceURL(avatarURL);
request.setEx(mergedExtra);

OpenIMClient.getInstance().userInfoManager.setSelfInfo(
    new OnBase<String>() {
        @Override
        public void onSuccess(String data) {
            markProfileUpdateSubmitted();
        }

        @Override
        public void onError(int code, String error) {
            recordProfileUpdateFailure(code, error);
        }
    },
    request
);

UserInfoReq 支持 nicknamefaceURLexaddFriendPermission 等字段。ex 是完整字符串,更新前应读取、解析并合并业务自己的命名空间;不要把部分 JSON 直接覆盖到服务端。

成功 callback 表示更新请求完成;当前账号资料的最终增量通过 onSelfInfoUpdated(UserInfo info) 到达,或重新调用 getSelfLocalUserInfo() 校准。

更新字段

字段说明
nickname要更新的昵称。
faceURL要更新的头像地址。
ex完整扩展字符串。
addFriendPermission添加好友权限值。

一次请求只写入需要变更的字段。全局消息接收策略虽然也由 setSelfInfo() 写入,但应使用独立入口,见设置全局消息接收方式

onSelfInfoUpdated 由本页归属,应组合进应用唯一的 OnUserListener

@Override
public void onSelfInfoUpdated(UserInfo info) {
    currentUserStore.merge(info.getUserID(), info);
}

账号级消息接收策略也通过 UserInfoReq 更新,但应使用独立入口,见设置全局消息接收方式