Get started with the Contact Center SDK for Android

The Contact Center SDK for Android lets users engage with agents directly through video and chat without leaving your app.

Requirements

  • Android 8.0+
  • Android Studio
  • Supported architectures: as of SDK version 3.3.0, arm64-v8a or armeabi-v7a; SDK version 3.2.0 or earlier, arm64-v8a, armeabi-v7a, x86, or x86_64
  • A Contact Center license and an entry ID (used to start a video or chat flow).
  • Since the Contact Center SDK is built on our Video SDK, your Contact Center SDK needs to be at least version 1.12.0 and will need to be updated at least every nine months.

Download

Download the Contact Center SDK for Android from Marketplace.

  1. Log into Marketplace.
  2. Create a Contact Center SDK app type.
  3. Download the Android SDK.

A screenshot of the page to download the Android SDK.

Install

The Contact Center SDK zip file - with a name like android-zccsdk-X.X.X.zip - contains 5 folders and a text file.

  • cci - contains the Contact Center SDK module with build.gradle and cciSDK.aar files
  • mobilertc - contains the Video SDK module with build.gradle and mobilertc.aar files
  • video-effects - contains the Video SDK module for blur effects with build.gradle and video-effects.aar files
  • zm-annoter- contains the Video SDK module for video annotation function with build.gradle and zm-annoter.aar files
  • sample - contains the sample code project
  • version.txt - contains the Contact Center SDK version code

The settings.gradle file shows how to import the cci module, the mobilertc module, the video-effects module, and the zm-annoter module.

include ':app'
// include mobilertc if using a content center video entry
include ':mobilertc'
project(':mobilertc').projectDir = new File(settingsDir, '../mobilertc')
include ':cci'
project(':cci').projectDir = new File(settingsDir, '../cci')
// include video-effects if need blur effects in your video call
include ':video-effects'
project(':video-effects').projectDir = new File(settingsDir, '../video-effects')
// include zm-annoter if need annotation function in your video call
include ':zm-annoter'
project(':zm-annoter').projectDir = new File(settingsDir, '../zm-annoter')

The app-level build.gradle file shows how to implement the cci module, the mobilertc module, the video-effects module, and the zm-annoter module.

  1. Unzip the android-zccsdk-X.X.X.zip file, and open the sample project in Android Studio. The cci module, the mobilertc module, the video-effects module, and the zm-annoter module should automatically be imported. To learn how to import the Contact Center SDK into your project, look at the sample project.

  2. To add the packagingOptions, enable viewBinding on the cci module. If you don't want to enable viewBinding, add dependencies.add("default","androidx.databinding:viewbinding:7.3.1") in the cci/build.gradle file.

    android {
        compileSdk 35
        namespace 'us.zoom.cc.sample'
        defaultConfig {
            // minSdk version should be >= 26
            minSdk 26
            targetSdk 35
        }
        // cci module and mobilertc module share the same libs
        packagingOptions {
            pickFirst 'lib/*/libzReflection.so'
            pickFirst 'lib/*/libc++_shared.so'
            pickFirst 'lib/*/libcrypto_sb.so'
            pickFirst 'lib/*/libssl_sb.so'
            pickFirst 'lib/*/libzoom_util.so'
            pickFirst 'lib/*/libcmmlib.so'
            pickFirst 'lib/*/libzlib.so'
        }
    	compileOptions {
            sourceCompatibility JavaVersion.VERSION_17
            targetCompatibility JavaVersion.VERSION_17
        }
        kotlinOptions {
            jvmTarget = '17'
        }
        // if you don't want to enable viewBinding, please add dependencies.add("default","androidx.databinding:viewbinding:7.3.1") into cci/build.gradle
        buildFeatures{
            buildConfig = true
            viewBinding true
        }
    }
    dependencies {
    	//...
        implementation project(':cci')
        //implementation mobilertc if using a content center video entry
        implementation project(':mobilertc')
        // implementation video-effects for blur background
        implementation project(path: ':video-effects')
        // implementation zm-annoter for video annotation
        implementation project(path: ':zm-annoter')
    }
    

    The project-level build.gradle declares the plugins required by the build system itself. For Android 15 (API level 35), upgrade the Android Gradle Plugin (AGP) to 8.x. Refer to this project-level build.gradle configuration.

    buildscript {
        dependencies {
            classpath "com.android.tools.build:gradle:8.2.2"
        }
    }
    
  3. In the proguard-rules.pro file, keep all Contact Center SDK related classes.

    -keep class us.zoom**{
        *;
    }
    -keep interface us.zoom**{
        *;
    }
    -keep class org.webrtc**{
        *;
    }
    -keep class com.zipow**{
        *;
    }
    
  4. In the MyApplication class in MyApplication.kt, initialize the Contact Center SDK.

    public class MyApplication extends Application {
        @Override
        public void onCreate() {
            super.onCreate();
            ZoomCCInterface.INSTANCE.init(getApplicationContext(),"User Name");
        }
    }
    
    ```kotlin
    

    class MyApplication:Application() { override fun onCreate() { super.onCreate() ZoomCCInterface.init(getApplicationContext(), "User Name") } }

  5. Optional To change the user name, call ZoomCCInterface.setContext. If you don't want to init with the user name, change the user name before calling service.fetchUI.

    ZoomCCInterface.INSTANCE.setContext(new ZoomCCContext("User Name"))
    
    ```kotlin
    

    ZoomCCInterface.setContext(ZoomCCContext("User Name"))

  6. In the AndroidManifest.xml file, set up the application.

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools">
        <application
            android:name=".MyApplication">
        </application>
    </manifest>