Android使用指南

更新时间: 2025-08-11 17:33:32

本文将介绍如何通过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:7.4.0'                  //修改x.x.x为你工程适配的版本
        implementation 'com.aliyun.auikits.android:ARTCAICallKit:2.7.1'
        implementation 'com.aliyun.sdk.android:AliVCInteractionMessage:x.x.x'
    }
    说明
    • ARTC SDK最低适配版本为v7.1.0,最新版本请到官网获取。

    • AliVCInteractionMessage版本请到官网获取最新适配版本号

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) {
            //文本朗读状态回调
        }
    };

上一篇: 不含UI集成方案 下一篇: 数据结构