Android Calling UI SDK
The Android Calling UI SDK minimises your coding effort for delivering a native telecom calling interface in your Android app. Built on top of the platform's notification and calling APIs, it presents incoming and outgoing call screens that feel native to the device — no custom UI code required. Combined with the Android UI Kit, you can enable full app-to-app audio/video calling in under five minutes.
Download the SDK ZIP and add the AAR to your project via Gradle flatDir. See Prerequisites below before integrating.
⬇ Download Android Calling UI SDK
The SDK wraps the incoming-call notification flow into a single class — EnxCallKitView.
When your app receives a VoIP push notification, you instantiate this class and hand it the caller
details. The SDK takes over from there: it renders the native-style calling UI on screen and fires
callback methods back to your activity when the user answers, rejects, or lets the call time out.
Your responsibility is to wire up the three callbacks to your application logic — start the video session on answer, clean up on reject or timeout.
Before integrating the Calling UI SDK, ensure the following are in place:
- VoIP / background mode enabled — Your app must have the VoIP background capability declared in the Android manifest so it can receive push notifications while in the background.
- Notification service in place — EnableX does not provide a push notification service. You must integrate your own (Firebase Cloud Messaging is the standard choice) to deliver incoming-call signals to the device before the Calling UI SDK can render the screen.
Integration requires implementing the EnxCallKitStateObserver observer interface in
your activity, then creating an instance of EnxCallKitView when a call arrives.
Class and Observer
- Observer interface:
EnxCallKitStateObserver— implement this in your activity to receive call events. - Class:
EnxCallKitView— instantiate this to render the calling UI.
Creating an EnxCallKitView Instance
| Parameter | Type | Description |
|---|---|---|
context | Activity | Reference to the current activity (this@YourActivity) |
name | String | Display name of the incoming caller |
icon | Int | Resource reference for the caller avatar icon |
observer | EnxCallKitStateObserver | Reference to the observer implementation (this) |
// Create an instance when an incoming call notification arrives
val callKitView = EnxCallKitView.getInstance(
this@ConferenceActivity, // Activity context
"Alice", // Caller display name
com.enxcallkit.R.mipmap.ic_launcher_round, // Caller icon resource
this // EnxCallKitStateObserver
)
Callbacks
Implement the three callback methods in your activity. The SDK calls these based on what the user does on the calling screen:
| Callback | When it fires | What to do |
|---|---|---|
callAnswer() |
User taps Accept | Connect to the EnableX video room and start the session |
callReject() |
User taps Decline | Notify the caller, release resources |
callTimeOut() |
No response within 45 seconds | Dismiss the UI, notify the caller of missed call |
override fun callAnswer() {
// User accepted the call — connect to the EnableX room
startVideoSession(roomId, token)
}
override fun callReject() {
// User declined — clean up and notify the remote caller
notifyCallerOfRejection()
}
override fun callTimeOut() {
// No response in 45 seconds — the calling UI auto-dismisses
notifyCallerOfMissedCall()
}
Full Integration Example
class ConferenceActivity : AppCompatActivity(), EnxCallKitStateObserver {
private lateinit var callKitView: EnxCallKitView
override fun onIncomingCallReceived(callerName: String) {
// Called from your FCM / push notification handler
callKitView = EnxCallKitView.getInstance(
this@ConferenceActivity,
callerName,
com.enxcallkit.R.mipmap.ic_launcher_round,
this
)
}
override fun callAnswer() {
// Start EnableX video session
}
override fun callReject() {
// Handle rejection
}
override fun callTimeOut() {
// Handle 45-second timeout
}
}
- Android UI Kit — Full audio/video room UI built on top of the EnableX Android SDK. Pair with the Calling UI SDK for a complete calling experience.
- Android Video SDK — The underlying SDK for building custom video UIs.