This guide walks you through installing the CometChat Calls SDK and initializing it in your Android application.
Add the CometChat Dependency
Step 1: Add Repository
Add the CometChat repository URL to your project level build.gradle file in the repositories block:
allprojects {
repositories {
maven {
url "https://dl.cloudsmith.io/public/cometchat/cometchat/maven/"
}
}
}
allprojects {
repositories {
maven {
url = uri("https://dl.cloudsmith.io/public/cometchat/cometchat/maven/")
}
}
}
Step 2: Add Dependencies
Add the Calls SDK dependency to your app level build.gradle file:
dependencies {
implementation "com.cometchat:calls-sdk-android:5.0.0"
}
dependencies {
implementation("com.cometchat:calls-sdk-android:5.0.0")
}
Add Java 8 compatibility to the android section of your app level build.gradle:
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
android {
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}
Add Permissions
Add the required permissions to your AndroidManifest.xml:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
For Android 6.0 (API level 23) and above, you must request camera and microphone permissions at runtime before starting a call.
Initialize CometChat Calls
The init() method initializes the SDK with your app credentials. Call this method once when your application starts, typically in your Application class or main Activity.
CallAppSettings
The CallAppSettings class configures the SDK initialization:
| Parameter | Type | Required | Description |
|---|
appId | String | Yes | Your CometChat App ID |
region | String | Yes | Your app region (us or eu) |
import com.cometchat.calls.core.CometChatCalls
import com.cometchat.calls.core.CallAppSettings
val appId = "APP_ID" // Replace with your App ID
val region = "REGION" // Replace with your Region ("us" or "eu")
val callAppSettings = CallAppSettings.CallAppSettingBuilder(appId, region).build()
CometChatCalls.init(this, callAppSettings, object : CometChatCalls.CallbackListener<String>() {
override fun onSuccess(message: String) {
Log.d(TAG, "CometChat Calls SDK initialized successfully")
}
override fun onError(e: CometChatException) {
Log.e(TAG, "CometChat Calls SDK initialization failed: ${e.message}")
}
})
import com.cometchat.calls.core.CometChatCalls;
import com.cometchat.calls.core.CallAppSettings;
String appId = "APP_ID"; // Replace with your App ID
String region = "REGION"; // Replace with your Region ("us" or "eu")
CallAppSettings callAppSettings = new CallAppSettings.CallAppSettingBuilder(appId, region).build();
CometChatCalls.init(this, callAppSettings, new CometChatCalls.CallbackListener<String>() {
@Override
public void onSuccess(String message) {
Log.d(TAG, "CometChat Calls SDK initialized successfully");
}
@Override
public void onError(CometChatException e) {
Log.e(TAG, "CometChat Calls SDK initialization failed: " + e.getMessage());
}
});
| Parameter | Description |
|---|
this | Android context (Application or Activity context) |
callAppSettings | Configuration object with App ID and Region |
listener | Callback listener for success/error handling |
Check Initialization Status
You can verify if the SDK has been initialized using the isInitialized() method:
if (CometChatCalls.isInitialized()) {
// SDK is ready to use
} else {
// Initialize the SDK first
}
if (CometChatCalls.isInitialized()) {
// SDK is ready to use
} else {
// Initialize the SDK first
}