Skip to main content
// Join a public group
CometChat.joinGroup("GUID", CometChatConstants.GROUP_TYPE_PUBLIC, "", 
    object : CometChat.CallbackListener<Group>() {
        override fun onSuccess(group: Group) { }
        override fun onError(e: CometChatException) { }
    })

// Join a password-protected group
CometChat.joinGroup("GUID", CometChatConstants.GROUP_TYPE_PASSWORD, "password123", callback)

Join a Group

Use joinGroup() to start participating in a group conversation.
private String GUID = "GUID";
private String groupType = CometChatConstants.GROUP_TYPE_PUBLIC;
private String password = "";

CometChat.joinGroup(GUID, groupType, password, new CometChat.CallbackListener<Group>() {
  @Override
  public void onSuccess(Group joinedGroup) {
    Log.d(TAG, joinedGroup.toString());
  }
  @Override
  public void onError(CometChatException e) {
    Log.d(TAG, "Group joining failed with exception: " + e.getMessage());
  }
});
The joinGroup() method takes the following parameters:
ParameterDescription
GUIDThe GUID of the group you would like to join
groupTypeType of the group. CometChat provides 3 types of groups: 1. CometChatConstants.GROUP_TYPE_PUBLIC (public) 2. CometChatConstants.GROUP_TYPE_PASSWORD (password) 3. CometChatConstants.GROUP_TYPE_PRIVATE (private)
passwordPassword is mandatory for password-protected groups.
Once you have joined a group successfully, you can send and receive messages in that group. CometChat keeps track of the groups you have joined, so you do not need to join the group every time you want to communicate in it. You can identify if a group is joined using the hasJoined parameter in the Group object.

Real-Time Group Member Joined Events

When a user joins a group, members receive a real-time event in onGroupMemberJoined() of the GroupListener class. The callback provides an Action object, the joined User, and the Group.
CometChat.addGroupListener(UNIQUE_LISTENER_ID, new CometChat.GroupListener() {
  @Override
  public void onGroupMemberJoined(Action action, User joinedUser, Group joinedGroup) {
    Log.d(TAG, "User joined");
  }
});

Missed Group Member Joined Events

When fetching message history, if a member joined a group the logged-in user is part of, the list will contain an Action message with these fields:
  1. action - joined
  2. actionBy - User object containing the details of the user who joined the group
  3. actionFor - Group object containing the details of the group the user has joined
Always remove group listeners when they’re no longer needed (e.g., in onDestroy() or when navigating away). Failing to remove listeners can cause memory leaks and duplicate event handling.

Next Steps

Leave Group

Leave groups you no longer want to participate in

Retrieve Members

Fetch list of group members

Send Messages

Start sending messages in the group

Group Listeners

Handle real-time group events