# Get started with the Contact Center SDK for Android

<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

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

## Requirements

-   Android 9.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](https://support.zoom.us/hc/en-us/articles/4470447059597), 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 **4.11.0** and will need to be updated at least every nine months.

## Download the Contact Center SDK for Android

If you **don't already have at least one registered app**, follow these steps to create an app and download the SDK files.

<ol>
    <li>Sign in to your developer account on the Zoom App Marketplace.</li>
    <ul>
    <li>Go to [Zoom App Marketplace](https://marketplace.zoom.us/?ampDeviceId=cf401538-835f-45ce-a7f1-1035e348c982&ampSessionId=1771892802618&ampDeviceId=625144c2-ec06-4362-b16c-c4a652d544b5&ampSessionId=1785855378806) and select **Sign in** at the top right corner.</li>
    <li>Select the blue **Developer** link in the lower left corner, under the lefthand navigation. If you don't see the link, verify that you have the correct permissions.</li>
    </ul>
<li>On the **Created apps** page, select the blue plus sign in the upper left corner next to the word **Developer**.</li>
<li>Select **Build App > General app**, and then select **Create**.</li>
<li>Go to **Features** and select **Embed**.</li>
<li>On the **Embed** page, enable **Contact Center SDK**.</li>
<li>Under the **Contact Center SDK** section, configure the settings as appropriate for your app.</li>

    <li>
        To download the SDK files, select the platform **Android**. This page
        displays available SDK versions for the selected platform, along with
        links to their corresponding release notes.
    </li>
    <li>Finally, select the **Download** button.</li>

</ol>

If you **already have at least one registered app**, follow these steps to download the SDK files using your existing app.

<ol>
    <li>Sign in to your developer account on the Zoom App Marketplace.</li>
    <ul>
    <li>Go to [Zoom App Marketplace](https://marketplace.zoom.us/?ampDeviceId=cf401538-835f-45ce-a7f1-1035e348c982&ampSessionId=1771892802618&ampDeviceId=625144c2-ec06-4362-b16c-c4a652d544b5&ampSessionId=1785855378806) and select **Sign in** at the top right corner.</li>
    <li>Select the blue **Developer** link in the lower left corner, under the lefthand navigation. This takes you to the **Created Apps** page. If you don't see the link, verify that you have the correct permissions.</li>
    </ul>
<li>On the **Created Apps** page, select your SDK app to open its configuration pages.</li>
<li>Go to **Features** and select **Embed**.</li>
<li>On the **Embed** page, go to the **Contact Center SDK** section.</li>

    <li>
        To download the SDK files, select the platform **Android**. This page
        displays available SDK versions for the selected platform, along with
        links to their corresponding release notes.
    </li>
    <li>Finally, select the **Download** button.</li>

</ol>

## 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.

```gradle
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 `packaging`, 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.

    ```gradle
    android {
    compileSdk 36
    namespace 'us.zoom.cc.sample'
    defaultConfig {
        // minSdk version should be >= 28
        minSdk 28
        targetSdk 36
    }

    // cci module and mobilertc module share the same libs
    packaging {
        jniLibs {
            pickFirsts += [
                'lib/*/libzReflection.so',
                'lib/*/libc++_shared.so',
                'lib/*/libcrypto_sb.so',
                'lib/*/libssl_sb.so',
                'lib/*/libzoom_util.so',
                'lib/*/libcmmlib.so',
                'lib/*/libzlib.so',
                'lib/*/libcurl.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 the 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 16 (API level 36), upgrade the Android Gradle Plugin (AGP) to 8.x. Refer to this project-level `build.gradle` configuration.

    ```gradle
    buildscript {
        dependencies {
            classpath "com.android.tools.build:gradle:8.10.0"
        }
    }
    ```

3. In the `proguard-rules.pro` file, keep all Contact Center SDK related classes.

    ```plaintext
    -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.

    ```java
    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`.

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

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

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

    ```xml
    <?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>
    ```
