浏览 SDKs · Android
SDKsAndroid

用户概览

了解 Android SDK 中的用户资料、好友关系、好友申请、黑名单和在线状态 API。

复制

OpenIM Android SDK 使用 userID 标识用户。实现资料卡、好友添加、联系人或黑名单功能时,需要区分应用用户的公开资料、当前用户维护的好友关系,以及黑名单状态。

群成员列表、群内昵称、群角色和成员管理属于群组能力,应使用群组相关 API;用户 API 只处理用户资料、好友关系、好友申请、黑名单和在线状态。

用户类型

Android SDK 会根据使用场景返回不同的用户对象:

类型适用场景主要 API
LocalUser当前登录用户的本地资料、设置页、头像、昵称和账号级接收设置getSelfLocalUserInfo()setSelfInfo()
PublicUserInfo查询应用用户、查找好友候选人和展示陌生人资料卡getUsersInfo()
UserInfoAndroid wrapper 返回的组合对象,可承载公开资料、好友资料或黑名单资料getFriendListPage()getFriendsInfo()getBlacklist()
FriendInfo当前用户的好友列表、好友备注和关系扩展字段searchFriends()getFriendListPage()
FriendApplicationInfo好友申请双方、处理状态和附言好友申请查询与 listener
BlacklistInfo当前用户拉黑的用户及黑名单关系字段getBlacklist()addBlacklist()removeBlacklist()
UsersOnlineStatus用户在线状态和在线平台列表subscribeUsersOnlineStatus()getSubscribeOnlineUsersStatus()

同一个 userID 可能同时出现在公开资料、好友资料、黑名单和群成员资料中。展示联系人信息时优先使用 UserInfo.getFriendInfo();只需要账号公开资料时使用 PublicUserInfo;黑名单页面使用 UserInfo.getBlackInfo()。会话列表和聊天页标题属于会话数据,应使用会话对象中的展示名称。

所有列表和事件都应使用 userID 作为稳定标识。好友申请同时包含申请方和接收方,应使用 fromUserID:toUserID 标识一条申请。

功能入口

下表列出了用户相关的常见需求和对应页面:

需求推荐页面
userID 查询公开资料,用于查找好友候选人或展示资料卡获取指定用户资料
分页、搜索或按 ID 查询好友关系分页获取好友列表
发送、查询、接受或拒绝好友申请获取收到的好友申请
修改好友资料更新好友资料
删除好友关系删除好友
查看和维护当前用户黑名单获取黑名单列表
读取或更新当前用户的昵称、头像和扩展资料更新当前用户资料
设置账号级消息接收和通知策略设置全局消息接收方式
订阅和读取在线状态订阅用户在线状态

状态更新

用户相关事件由对应能力页负责监听和合并:

Android SDK 的 UserInfoManagerFriendshipManager 各保存一个 listener,setOnUserListener()setOnFriendshipListener() 都采用替换语义。应用应在统一状态层组合各页面所需 callback,并分别设置一次,不能让多个页面重复设置而覆盖其他 callback。