全部產品
Search
文件中心

Intelligent Media Services:Android使用指南

更新時間:Nov 11, 2025

本文將介紹如何通過AICallKit SDK整合訊息對話智能體到您的Android應用中。

環境要求

  • Android Studio 外掛程式版本4.1.3

  • Gradle 7.0.2

  • Android Studio內建JDK11

整合SDK

  1. 在專案級build.gradle專案檔中添加阿里雲Maven倉庫。

    allprojects {
        repositories {
            google()
            jcenter()
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/public' }
        }
    }
  2. 在相應build.gradle專案檔下,引入ARTCAICallKit依賴項。

    dependencies {
        implementation 'com.aliyun.aio:AliVCSDK_ARTC:x.x.x'                  //修改x.x.x為你工程適配的版本
        implementation 'com.aliyun.auikits.android:ARTCAICallKit:x.x.x'
        implementation 'com.aliyun.sdk.android:AliVCInteractionMessage:x.x.x'
    }
    說明
    • ARTC SDK最低適配版本為7.1.0,最新版本:7.8.0

    • AICallKit SDK最新版本:2.9.0

    • AliVCInteractionMessage最新版本:1.8.0。

SDK使用樣本

ARTCAIChatEngine mChatEngine = null;

// 建立engine執行個體
void initEngine(Context context) {
// 初始化
// context -> Android Context
mChatEngine = new ARTCAIChatEngineImpl(context);  
}

// 設定回調
void initCallback() {
    mChatEngine.setEngineCallback(mAIChatEngineCallback); 
}

// 啟動智能體後,開始對話
String mUserId = "XXX"; //userId -> 進入訊息對話的使用者id,建議使用業務系統的使用者ID
String mAgentId = "XXX"; //智能體ID -> 控制台建立訊息對話智能體的ID
String mSessionId = "XXX";//當前會話的唯一標識,如果為空白,則使用userId+agentId作為唯一標識
String mAgentRegion = "XXX";//智能體所在地區
mChatEngine.startChat(
    new ARTCAIChatEngine.ARTCAIChatUserInfo(mUserId, ""),
    new ARTCAIChatEngine.ARTCAIChatAgentInfo(mAgentId, mAgentRegion), mSessionId);



//發送簡訊
mChatEngine.sendMessage(new ARTCAIChatEngine.ARTCAIChatSendMessageRequest(requestId, ARTCAIChatEngine.ARTCAIChatMessageType.Text, message.text), new ARTCAIChatEngine.IARTCAIChatMessageCallback() {
    @Override
    public void onSuccess(ARTCAIChatEngine.ARTCAIChatMessage data) {
        //發送成功處理
    }
    @Override
    public void onFailure(ARTCAIChatEngine.ARTCAIChatMessage data, ARTCAIChatEngine.ARTCAIChatError error) {
        //發送失敗處理
    }
});

//發送按鍵語音訊息
mChatEngine.startPushVoiceMessage(new ARTCAIChatEngine.ARTCAIChatSendMessageRequest(requestId, ARTCAIChatEngine.ARTCAIChatMessageType.Voice, ""));

//結束按鍵語音
mChatEngine.finishPushVoiceMessage(new ARTCAIChatEngine.IARTCAIChatMessageCallback() {
    @Override
    public void onSuccess(ARTCAIChatEngine.ARTCAIChatMessage data) {
        //發送成功處理 
    }
});

//文本朗讀
mChatEngine.startPlayMessage(message, voiceId, new ARTCAIChatEngine.IARTCAIChatMessageCallback() {
    @Override
    public void onSuccess(ARTCAIChatEngine.ARTCAIChatMessage data) {
        Logger.i("startPlayMessage success");

    }
    @Override
    public void onFailure(ARTCAIChatEngine.ARTCAIChatMessage data, ARTCAIChatEngine.ARTCAIChatError error) {
        Logger.e("startPlayMessage failed  error.errorCode: " + error.errorCode + ", error.errorMsg" + error.errorMsg);

    }
});

// 回調處理(僅樣本部分核心的回調操作)
ARTCAIChatEngine.IARTCAIChatEngineCallback mAIChatEngineCallback = new ARTCAIChatEngine.IARTCAIChatEngineCallback(){

    @Override
    public void onRequestAuthToken(String userId, ARTCAIChatEngine.IARTCAIChatAuthTokenCallback callback) {
        //必須要實現的回調,通過AppServer或者業務Server調用generateMessageChatToken OpenAPI擷取Token
        //AICall SDK需要用這個Token進行鑒權
        ARTCAIChatEngine.ARTCAIChatAuthToken auth = new ARTCAIChatEngine.ARTCAIChatAuthToken(jsonObject);//jsonObject從業務Server介面獲得
        callback.onSuccess(auth);
    }

    @Override
    public void onErrorOccurs(ARTCAIChatEngine.ARTCAIChatError error, String requestId) {
        //錯誤相關回調
    }

    @Override
    public void onEngineStateChange(ARTCAIChatEngine.ARTCAIChatEngineState oldState, ARTCAIChatEngine.ARTCAIChatEngineState newState) {
        //Engine狀態相關回調
    }



    @Override
    public void onReceivedMessage(ARTCAIChatEngine.ARTCAIChatMessage message) {
        //接收訊息
    }

    @Override
    public void onUserMessageUpdated(ARTCAIChatEngine.ARTCAIChatMessage message) {
        //訊息更新
    }

    @Override
    public void onAgentResponseStateChange(ARTCAIChatEngine.ARTCAIChatAgentState agentState, String requestId) {
        //智能體狀態變化回調
    }

    @Override
        public void onMessagePlayStateChange(ARTCAIChatEngine.ARTCAIChatMessage message, ARTCAIChatEngine.ARTCAIChatMessagePlayState state) {
            //文本朗讀狀態回調
        }
    };