Skip to main content
Quick Setup Reference
// 1. Add dependency to build.gradle
implementation "com.cometchat:chat-sdk-android:4.1.8"

// 2. Initialize (run once at app start)
val appSettings = AppSettings.AppSettingsBuilder()
    .subscribePresenceForAllUsers()
    .setRegion("REGION")
    .build()
CometChat.init(context, "APP_ID", appSettings, callback)

// 3. Login user
CometChat.login("UID", "AUTH_KEY", callback)  // Dev only
Required Credentials: App ID, Region, Auth Key (dev) or Auth Token (prod)
Get from: CometChat Dashboard → Your App → API & Auth Keys
CometChat.init() must be called before any other SDK method. Calling login(), sendMessage(), or registering listeners before init() will fail.
Auth Key is for development/testing only. In production, generate Auth Tokens on your server using the REST API and pass them to the client. Never expose Auth Keys in production client code.
This guide demonstrates how to add chat to an Android application. Before you begin, we strongly recommend reading the Key Concepts guide.

I want to integrate with my app

  1. Get your application keys
  2. Add the CometChat dependency
  3. Initialize CometChat
  4. Register and Login your user
  5. Integrate our UI Kits

I want to explore a sample app (includes UI)

Import the app into Android Studio and follow the steps mentioned in the README.md file. Java Chat App Kotlin Chat App

Get your Application Keys

Sign up for CometChat and then:
  1. Create a new app
  2. Head over to the API Keys section and note the Auth Key, App ID & Region
Minimum Requirements
  • Android API Level 21
  • Android API Level 24 (if you are using the Calls SDK)
  • AndroidX Compatibility

Add the CometChat Dependency

First, add the repository URL to the project level build.gradle file in the repositories block under the allprojects section.
allprojects {
  repositories {
    maven {
      url "https://dl.cloudsmith.io/public/cometchat/cometchat/maven/"
    }
  }
}
Then, add CometChat to the app level build.gradle file in the dependencies section.
dependencies { 
  implementation "com.cometchat:chat-sdk-android:4.1.8"
}
Starting from v2.4+, Voice & Video Calling functionality has been moved to a separate library. If you plan to use the calling feature, add the Calling dependency implementation 'com.cometchat:calls-sdk-android:4.3.3' in the dependencies section of the app-level build.gradle file.
Finally, add the following lines to the android section of the app level gradle file.
android {
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

Initialise CometChat

The init() method initializes the settings required for CometChat. This method takes the following parameters:
  1. appID - Your CometChat App ID
  2. appSettings - An object of the AppSettings class created using the AppSettingsBuilder class. The region field is mandatory and can be set using the setRegion() method.
The AppSettings class allows you to configure the following settings:
  • Region: The region where your app was created.
  • Presence Subscription: Represents the subscription type for user presence (real-time online/offline status).
  • autoEstablishSocketConnection(boolean value): When set to true, the SDK manages the WebSocket connection internally. When set to false, you must manage the WebSocket connection manually. The default value is true. For more information, see the Managing Web-Socket connections manually section.
  • overrideAdminHost(adminHost: string): Takes the admin URL as input and uses it instead of the default admin URL. This is useful for dedicated deployments of CometChat.
  • overrideClientHost(clientHost: string): Takes the client URL as input and uses it instead of the default client URL. This is useful for dedicated deployments of CometChat.
String appID = "APP_ID"; // Replace with your App ID
String region = "REGION"; // Replace with your App Region ("eu" or "us")

AppSettings appSettings = new AppSettings.AppSettingsBuilder()
    .subscribePresenceForAllUsers()
    .setRegion(region)
    .autoEstablishSocketConnection(true)
    .build();

CometChat.init(this, appID, appSettings, new CometChat.CallbackListener <String> () {
    @Override
    public void onSuccess(String successMessage) {
        Log.d(TAG, "Initialization completed successfully");
    }

    @Override
    public void onError(CometChatException e) {
        Log.d(TAG, "Initialization failed with exception: " + e.getMessage());
    }
});
Make sure you replace APP_ID with your CometChat App ID and region with your App Region in the above code.

Register and Login your User

Once initialization is successful, you need to create a user. To create users on the fly, use the createUser() method. This method takes a User object and the Auth Key as input parameters and returns the created User object if the request is successful.
String authKey = "AUTH_KEY"; // Replace with your App Auth Key
User user = new User();
user.setUid("USER_UID"); // Replace with the UID for the user to be created
user.setName("USER_NAME"); // Replace with the name of the user

CometChat.createUser(user, authKey, new CometChat.CallbackListener <User> () {
    @Override
    public void onSuccess(User user) {
        Log.d("createUser", user.toString());
    }

    @Override
    public void onError(CometChatException e) {
        Log.e("createUser", e.getMessage());
    }
});
Make sure that UID and name are specified, as these are mandatory fields to create a user. Once you have created the user successfully, you need to log the user into CometChat using the login() method. We recommend calling the CometChat login() method once your user logs into your app. The login() method only needs to be called once.
This straightforward authentication method is ideal for proof-of-concept (POC) development or during the early stages of application development. For production environments, however, we strongly recommend using an Auth Token instead of an Auth Key to ensure enhanced security.
String UID = "user1"; // Replace with the UID of the user to login
String authKey = "AUTH_KEY"; // Replace with your App Auth Key

if (CometChat.getLoggedInUser() == null) {
    CometChat.login(UID, authKey, new CometChat.CallbackListener <User> () {
        @Override
        public void onSuccess(User user) {
            Log.d(TAG, "Login Successful : " + user.toString());
        }

        @Override
        public void onError(CometChatException e) {
            Log.d(TAG, "Login failed with exception: " + e.getMessage());
        }
    });
} else {
    // User already logged in
}
Make sure you replace AUTH_KEY with your App Auth Key in the above code. The login() method returns the User object containing all the information of the logged-in user.
UID can be alphanumeric with underscore and hyphen. Spaces, punctuation and other special characters are not allowed.

Integrate our UI Kits


Next Steps