Class RongUserInfoManager
-
- All Implemented Interfaces:
public class RongUserInfoManager
rongcloud
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public interface
RongUserInfoManager.UserDataObserver
public enum
RongUserInfoManager.DataSourceType
数据源类型。
-
Field Summary
Fields Modifier and Type Field Description public RongUserInfoManager.DataSourceType
dataSourceType
-
Method Summary
Modifier and Type Method Description RongUserInfoManager.DataSourceType
getDataSourceType()
获取用户信息数据源类型。 void
setDataSourceType(RongUserInfoManager.DataSourceType dataSourceType)
切换用户信息数据源。 static RongUserInfoManager
getInstance()
void
initAndUpdateUserDataBase(Context context)
void
setUserInfoProvider(UserInfoProvider userInfoProvider, boolean isCacheUserInfo)
设置用户信息的提供者,供 UI 获取用户名称和头像信息。 各 ViewModel 会监听用户信息的变化,进行对应刷新。 如果需要异步从服务器获取用户信息,使用者可以在此方法中发起异步请求,然后返回 null 信息。 在异步请求结果返回后,根据返回的结果调用 refreshUserInfoCache} 刷新用户信息。 void
setGroupInfoProvider(GroupInfoProvider groupInfoProvider, boolean isCacheGroupInfo)
设置群组信息提供者。 boolean
isCacheUserOrGroupInfo()
void
setGroupUserInfoProvider(GroupUserInfoProvider groupUserInfoProvider, boolean isCacheGroupUserInfo)
设置群成员提供者 可以使用此方法,修改群组中用户昵称 设置后,当 sdk 界面展示用户信息时,会回调 getGroupUserInfo 使用者只需要根据对应的 groupId, userId 提供对应的用户信息 GroupUserInfo。 如果需要异步从服务器获取用户信息,使用者可以在此方法中发起异步请求,然后返回 null 信息。 在异步请求结果返回后,根据返回的结果调用 refreshGroupUserInfoCache 刷新信息。 UserInfo
getUserInfo(String userId)
获取用户信息。 Group
getGroupInfo(String groupId)
获取群组信息。 GroupUserInfo
getGroupUserInfo(String groupId, String userId)
获取群组用户信息。 UserInfo
getCurrentUserInfo()
获取当前用户信息。 void
setCurrentUserInfo(UserInfo userInfo)
设置当前用户信息。 如果开发者没有实现用户信息提供者,而是使用消息携带用户信息,需要使用这个方法设置当前用户的信息, 然后在init之后调用setMessageAttachedUserInfo, 这样可以在每条消息中携带当前用户的信息,IMKit会在接收到消息的时候取出用户信息并刷新到界面上。 void
setMessageAttachedUserInfo(boolean state)
设置消息体内是否携带用户信息。 boolean
getUserInfoAttachedState()
获取当前用户关于消息体内是否携带用户信息的配置 void
addUserDataObserver(RongUserInfoManager.UserDataObserver observer)
添加用户信息观察者。 void
removeUserDataObserver(RongUserInfoManager.UserDataObserver observer)
移除用户信息观察者。 void
refreshUserInfoCache(UserInfo userInfo)
刷新用户信息缓存。 void
refreshGroupInfoCache(Group groupInfo)
刷新群组信息缓存。 void
refreshGroupUserInfoCache(GroupUserInfo groupUserInfo)
刷新群组用户信息缓存。 String
getUserDisplayName(UserInfo userInfo)
获取用户显示名称。 String
getUserDisplayName(User user)
获取用户显示名称。 String
getUserDisplayName(UserInfo userInfo, String groupMemberName)
获取用户显示名称。 -
-
Method Detail
-
getDataSourceType
RongUserInfoManager.DataSourceType getDataSourceType()
获取用户信息数据源类型。
- Returns:
用户信息数据源类型。
-
setDataSourceType
void setDataSourceType(RongUserInfoManager.DataSourceType dataSourceType)
切换用户信息数据源。
- Parameters:
dataSourceType
- 数据源类型。 默认为 INFO_PROVIDER。
-
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)
设置群组信息提供者。
- Parameters:
groupInfoProvider
- 群组信息提供者。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)
获取用户信息。
- Parameters:
userId
- 用户 Id。- Returns:
用户信息。
-
getGroupInfo
Group getGroupInfo(String groupId)
获取群组信息。
- Parameters:
groupId
- 群组 Id。- Returns:
群组信息。
-
getGroupUserInfo
GroupUserInfo getGroupUserInfo(String groupId, String userId)
获取群组用户信息。
- Parameters:
groupId
- 群组 Id。userId
- 用户 Id。- Returns:
群组用户信息。
-
getCurrentUserInfo
UserInfo getCurrentUserInfo()
获取当前用户信息。
- Returns:
当前用户信息。
-
setCurrentUserInfo
void setCurrentUserInfo(UserInfo userInfo)
设置当前用户信息。 如果开发者没有实现用户信息提供者,而是使用消息携带用户信息,需要使用这个方法设置当前用户的信息, 然后在init之后调用setMessageAttachedUserInfo, 这样可以在每条消息中携带当前用户的信息,IMKit会在接收到消息的时候取出用户信息并刷新到界面上。
- Parameters:
userInfo
- 当前用户信息。
-
setMessageAttachedUserInfo
void setMessageAttachedUserInfo(boolean state)
设置消息体内是否携带用户信息。
- Parameters:
state
- 是否携带用户信息,true 携带,false 不携带。
-
getUserInfoAttachedState
boolean getUserInfoAttachedState()
获取当前用户关于消息体内是否携带用户信息的配置
- Returns:
是否携带用户信息
-
addUserDataObserver
void addUserDataObserver(RongUserInfoManager.UserDataObserver observer)
添加用户信息观察者。
- Parameters:
observer
- 用户信息观察者。
-
removeUserDataObserver
void removeUserDataObserver(RongUserInfoManager.UserDataObserver observer)
移除用户信息观察者。
- Parameters:
observer
- 用户信息观察者。
-
refreshUserInfoCache
void refreshUserInfoCache(UserInfo userInfo)
刷新用户信息缓存。
- Parameters:
userInfo
- 用户信息。
-
refreshGroupInfoCache
void refreshGroupInfoCache(Group groupInfo)
刷新群组信息缓存。
- Parameters:
groupInfo
- 群组信息。
-
refreshGroupUserInfoCache
void refreshGroupUserInfoCache(GroupUserInfo groupUserInfo)
刷新群组用户信息缓存。
- Parameters:
groupUserInfo
- 群组用户信息。
-
getUserDisplayName
String getUserDisplayName(UserInfo userInfo)
获取用户显示名称。
- Parameters:
userInfo
- 用户信息。- Returns:
用户显示名称。
-
getUserDisplayName
String getUserDisplayName(User user)
获取用户显示名称。
- Parameters:
user
- 用户信息。- Returns:
用户显示名称。
-
getUserDisplayName
String getUserDisplayName(UserInfo userInfo, String groupMemberName)
获取用户显示名称。
- Parameters:
userInfo
- 用户信息。groupMemberName
- 群组成员名称。- Returns:
用户显示名称。
-
-
-
-