Package io.rong.imkit.userinfo
Class RongUserInfoManager
-
- All Implemented Interfaces:
public class RongUserInfoManager
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public interfaceRongUserInfoManager.UserDataObserver用户信息变更观察者,所有回调都在 ui 线程
-
Method Summary
Modifier and Type Method Description UserDatabasegetUserDatabase()static RongUserInfoManagergetInstance()voidinitAndUpdateUserDataBase(Context context)初始化并打开用户信息数据库 voidsetUserInfoProvider(UserInfoProvider userInfoProvider, boolean isCacheUserInfo)设置用户信息的提供者,供 UI 获取用户名称和头像信息。 各 ViewModel 会监听用户信息的变化,进行对应刷新。 如果需要异步从服务器获取用户信息,使用者可以在此方法中发起异步请求,然后返回 null 信息。 在异步请求结果返回后,根据返回的结果调用 refreshUserInfoCache} 刷新用户信息。 voidsetGroupInfoProvider(GroupInfoProvider groupInfoProvider, boolean isCacheGroupInfo)booleanisCacheUserOrGroupInfo()voidsetGroupUserInfoProvider(GroupUserInfoProvider groupUserInfoProvider, boolean isCacheGroupUserInfo)设置群成员提供者 可以使用此方法,修改群组中用户昵称 设置后,当 sdk 界面展示用户信息时,会回调 getGroupUserInfo 使用者只需要根据对应的 groupId, userId 提供对应的用户信息 GroupUserInfo。 如果需要异步从服务器获取用户信息,使用者可以在此方法中发起异步请求,然后返回 null 信息。 在异步请求结果返回后,根据返回的结果调用 refreshGroupUserInfoCache 刷新信息。 UserInfogetUserInfo(String userId)GroupgetGroupInfo(String groupId)GroupUserInfogetGroupUserInfo(String groupId, String userId)UserInfogetCurrentUserInfo()voidsetCurrentUserInfo(UserInfo userInfo)设置当前用户信息。 如果开发者没有实现用户信息提供者,而是使用消息携带用户信息,需要使用这个方法设置当前用户的信息, 然后在init之后调用setMessageAttachedUserInfo, 这样可以在每条消息中携带当前用户的信息,IMKit会在接收到消息的时候取出用户信息并刷新到界面上。 voidsetMessageAttachedUserInfo(boolean state)设置消息体内是否携带用户信息。 booleangetUserInfoAttachedState()获取当前用户关于消息体内是否携带用户信息的配置 voidrefreshUserInfoCache(UserInfo userInfo)voidrefreshGroupInfoCache(Group groupInfo)voidrefreshGroupUserInfoCache(GroupUserInfo groupUserInfo)StringgetUserDisplayName(UserInfo userInfo)StringgetUserDisplayName(User user)StringgetUserDisplayName(UserInfo userInfo, String groupMemberName)voidaddUserDataObserver(RongUserInfoManager.UserDataObserver observer)增加数据变更监听器。 当用户信息、群信息或者群昵称信息发生变更时,会回调此监听器。 voidremoveUserDataObserver(RongUserInfoManager.UserDataObserver observer)移除数据变更监听器。 -
-
Method Detail
-
getUserDatabase
UserDatabase getUserDatabase()
-
getInstance
static RongUserInfoManager getInstance()
-
initAndUpdateUserDataBase
void initAndUpdateUserDataBase(Context context)
初始化并打开用户信息数据库
-
setUserInfoProvider
void setUserInfoProvider(UserInfoProvider userInfoProvider, boolean isCacheUserInfo)
设置用户信息的提供者,供 UI 获取用户名称和头像信息。 各 ViewModel 会监听用户信息的变化,进行对应刷新。 如果需要异步从服务器获取用户信息,使用者可以在此方法中发起异步请求,然后返回 null 信息。 在异步请求结果返回后,根据返回的结果调用 refreshUserInfoCache} 刷新用户信息。
- Parameters:
userInfoProvider- 用户信息提供者 UserDataProvider.isCacheUserInfo- 设置是否由 IMKit 来缓存用户信息。如果 App 提供的 UserInfoProvider。 每次都需要通过网络请求用户数据,而不是将用户数据缓存到本地,会影响用户信息的加载速度;此时最好将本参数设置为 true,由 IMKit 来缓存用户信息。
-
setGroupInfoProvider
void setGroupInfoProvider(GroupInfoProvider groupInfoProvider, boolean isCacheGroupInfo)
-
isCacheUserOrGroupInfo
boolean isCacheUserOrGroupInfo()
-
setGroupUserInfoProvider
void setGroupUserInfoProvider(GroupUserInfoProvider groupUserInfoProvider, boolean isCacheGroupUserInfo)
设置群成员提供者
可以使用此方法,修改群组中用户昵称
设置后,当 sdk 界面展示用户信息时,会回调 getGroupUserInfo 使用者只需要根据对应的 groupId, userId 提供对应的用户信息 GroupUserInfo。 如果需要异步从服务器获取用户信息,使用者可以在此方法中发起异步请求,然后返回 null 信息。 在异步请求结果返回后,根据返回的结果调用 refreshGroupUserInfoCache 刷新信息。
- Parameters:
groupUserInfoProvider- 群组用户信息提供者。isCacheGroupUserInfo- 设置是否由 IMKit 来缓存 GroupUserInfo。如果 App 提供的 GroupUserInfoProvider。 每次都需要通过网络请求数据,而不是将数据缓存到本地,会影响信息的加载速度;此时最好将本参数设置为 true,由 IMKit 来缓存信息。
-
getUserInfo
UserInfo getUserInfo(String userId)
-
getGroupInfo
Group getGroupInfo(String groupId)
-
getGroupUserInfo
GroupUserInfo getGroupUserInfo(String groupId, String userId)
-
getCurrentUserInfo
UserInfo getCurrentUserInfo()
-
setCurrentUserInfo
void setCurrentUserInfo(UserInfo userInfo)
设置当前用户信息。 如果开发者没有实现用户信息提供者,而是使用消息携带用户信息,需要使用这个方法设置当前用户的信息, 然后在init之后调用setMessageAttachedUserInfo, 这样可以在每条消息中携带当前用户的信息,IMKit会在接收到消息的时候取出用户信息并刷新到界面上。
- Parameters:
userInfo- 当前用户信息。
-
setMessageAttachedUserInfo
void setMessageAttachedUserInfo(boolean state)
设置消息体内是否携带用户信息。
- Parameters:
state- 是否携带用户信息,true 携带,false 不携带。
-
getUserInfoAttachedState
boolean getUserInfoAttachedState()
获取当前用户关于消息体内是否携带用户信息的配置
- Returns:
是否携带用户信息
-
refreshUserInfoCache
void refreshUserInfoCache(UserInfo userInfo)
-
refreshGroupInfoCache
void refreshGroupInfoCache(Group groupInfo)
-
refreshGroupUserInfoCache
void refreshGroupUserInfoCache(GroupUserInfo groupUserInfo)
-
getUserDisplayName
String getUserDisplayName(UserInfo userInfo)
-
getUserDisplayName
String getUserDisplayName(User user)
-
getUserDisplayName
String getUserDisplayName(UserInfo userInfo, String groupMemberName)
-
addUserDataObserver
void addUserDataObserver(RongUserInfoManager.UserDataObserver observer)
增加数据变更监听器。 当用户信息、群信息或者群昵称信息发生变更时,会回调此监听器。
- Parameters:
observer- 数据变更监听器。
-
removeUserDataObserver
void removeUserDataObserver(RongUserInfoManager.UserDataObserver observer)
移除数据变更监听器。
- Parameters:
observer- 已设置的数据变更监听器。
-
-
-
-