Group Member List
IMKit supports two user information display modes:
- User Info Provider Proxy Mode (current document): App developers must actively fetch user profiles, group info, and group member info from the application server and provide them to the SDK. The nickname and avatar registered via RC server during token acquisition are only used for push services.
- [User Profile Hosting Mode]: Starting from v5.12.0, IMKit supports switching to hosted mode for displaying user/group info in chat UI and conversation list.
This document explains how the application layer (App) provides group member data to IMKit SDK, which is used in:
- Default member selection UI when entering @ symbol in group chats
- Member selection UI for initiating group RTC calls
After configuration, IMKit UI will properly display group members' avatars, usernames, or group nicknames when showing member lists.
Understanding Group Member Provider Interface
The SDK defines the group member provider (IGroupMembersProvider) in the RongMentionManager class. When IMKit UI needs to display member lists, it triggers the getGroupMembers
method of IGroupMembersProvider
to fetch member info from the application layer.
App developers must implement both IGroupMembersProvider and IGroupMemberCallback interfaces in RongMentionManager
. Without these implementations, the member selection UI will show an empty list.
public interface IGroupMembersProvider {
void getGroupMembers(String groupId, IGroupMemberCallback callback);
}
public interface IGroupMemberCallback {
void onGetGroupMembersResult(List<UserInfo> members);
}
Setting Up Group Member Provider
Call setGroupMembersProvider method of IMCenter
after initialization to configure the provider. The SDK relies on the App to actively fetch group member data from the application layer (e.g., App server).
When IMKit UI needs member lists, the SDK triggers getGroupMembers
callback with the group ID. Your implementation should:
- Fetch member user IDs based on the group ID
- Query user info from the application layer using these IDs
- Provide the UserInfo list to SDK via IGroupMemberCallback
For group member nicknames, implement the group member user info provider. See Group Member User Info.
RongIM.getInstance().setGroupMembersProvider(new RongMentionManager.IGroupMembersProvider() {
@Override
public void getGroupMembers(String groupId, RongMentionManager.IGroupMemberCallback iGroupMemberCallback) {
//groupId is the group ID. Fetch member user IDs and corresponding user info
//Sample code:
List<UserInfo> list=new ArrayList();
UserInfo userInfo=new UserInfo("userid1","Xiaohua22", Uri.parse(""));
...
list.add(userInfo);
list.add...
iGroupMemberCallback.onGetGroupMembersResult(list); // Return member info via callback
}
});