初始化
我们在 SDK 的压缩文件夹中提供了一个简单的集成示例 Sample App 。初次使用,推荐参考 Sample App 配合官网文档来进行 SDK 的集成。
Sample App 中包含了最小程度的集成代码示例,开发者可以直接将 SDK 的 AAR 文件导入 Sample 中运行。 如果 Sample App 中各项功能均能够运行成功,则说明硬件和系统环境已经集成完毕。开发者可以参考 Sample App 中的代码来使用 SDK 的各项功能。
接下来介绍手动集成 AAR 到项目中的步骤:
集成步骤
- 在项目的build.gradle中进行依赖配置,配置如下:
android {
repositories {
flatDir {
dir 'libs'
}
}
}
dependencies {
// AbcRobotSDK-v2.x.x为RobotSDK aar文件的名称。
implementation(name: 'AbcRobotSDK-v2.x.x', ext: 'aar')
// SDK依赖库
implementation(name: 'lib-liantian-releaseLogenable-3.1.6.7', ext: 'aar')
}
- 需要添加的远程依赖如下,如您项目中已经包含则无需添加:
// Android Official libs
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
// Third party libs
implementation 'com.squareup.okio:okio:1.14.0'
implementation 'com.squareup.okhttp3:okhttp:3.10.0'
implementation 'com.alibaba:fastjson:1.2.67'
implementation 'org.greenrobot:greendao:3.2.2'
初始化
配置初始化参数
SDK初始化参数配置包括SDK全局参数和SDK组件参数,分别通过全局参数对象和SDK各组件对应的组件参数对象进行配置。
SDK全局参数配置
通过RobotSDKConfig对象完成SDK全局参数的配置,这里列出主要部分:
RobotSDKConfig sdkConfig = new RobotSDKConfig();
// 配置项目ClientID,项目鉴权时使用ID
sdkConfig.setClientId(RobotApplication.CLIENT_ID);
// 配置项目ClientSecret,项目鉴权时使用鉴权码
sdkConfig.setClientSecret(RobotApplication.CLIENT_SECRET);
SDK组件参数配置
通过SDK组件配置对象,完成对应组件的参数配置,SDK包括的组件和对应的组件配置对象:
组件名称 | 配置对象 |
---|---|
语音功能组件 | SpeechModuleConfig |
人脸功能组件 | FaceModuleConfig |
事件指令组件 | DirectiveModuleConfig |
数据打点组件 | DataTrackingConfig |
组件参数配置方法,以SDK的人脸功能组件为例:
// 初始化人脸组件配置对象
FaceModuleConfig faceModuleConfig = new FaceModuleConfig();
// 摄像头设备类型(TYPE_INTERNAL_FRONT设备摄像头)
faceModuleConfig.cameraType = TYPE_INTERNAL_FRONT;
// 摄像头设备ID
faceModuleConfig.cameraId = "1";
// 摄像头图片帧方向
faceModuleConfig.videoDirection = 0;
// 图片帧人脸识别前,图片需要旋转的角度
faceModuleConfig.faceAngle = ANGLE_270;
// 人脸识别方式(在线识别,离线识别)
faceModuleConfig.recType = REC_TYPE_ONLINE;
// 在线识别对应的服务端人脸库名称
faceModuleConfig.faceGroup = "VIPFace";
设置组件配置对象
完成组件配置对象设置,以SDK的人脸功能组件配置为例:
RobotSDKConfig sdkConfig = new RobotSDKConfig();
...
FaceModuleConfig faceModuleConfig = new FaceModuleConfig();
...
// 设置人脸组件配置对象
sdkConfig.addModuleConfig(faceModuleConfig);
执行SDK初始化
初始化方法
使用SDK初始化方法和RobotSDKConfig配置对象完成SDK初始化,通过实现ISDKInitListener初始化回调接口监听初始化过程。 初始化方法内部为异步操作不会阻塞当前线程。
// 获取SDK引擎对象
RobotSDKEngineBuilder robotSDKEngineBuilder =
new RobotSDKEngineBuilder();
IRobotSDKEngine iRobotSDKEngine = robotSDKEngineBuilder.build();
// 初始化SDK
iRobotSDKEngine.init(context, sdkConfig, initListener);
初始化回调接口
实现ISDKInitListener接口,可以监听SDK初始化状态。onInitFinish执行结束后,返回的参数initCode >= 0表明SDK初始化成功。
public interface ISDKInitListener {
/**
* 初始化过程回调方法
*
* @param initModuleName 完成初始化的功能或组件名称
* @param initCode 功能或组件初始化状态(大于0为初始化成功状态,小于0为初始化失败状态)
* @param initMsg 功能或组件初始化状态信息
*/
void onInitProcess(String initModuleName, int initCode, String initMsg);
/**
* 初始化完成回调方法
*
* @param initCode SDK初始化状态码(大于0为初始化成功状态,小于0为初始化失败状态)
* @param initMsg SDK初始化状态信息
*/
void onInitFinish(int initCode, String initMsg);
}
获取设备ID
SDK激活完成后,您可以在管理控制台—设备管理的列表中查看到最新激活的设备ID、设备名称等信息。同时,SDK端可以通过调用IRobotSDKEngine.getDeviceId()
函数获取设备ID,以建立Console端和SDK端的对应关系。
初始化状态码
错误码为负数,状态码为正数
错误码/状态码 | 描述 |
---|---|
10000 | SDK初始化成功 |
10001 | SDK权限检测初始化成功 |
10002 | SDK运行状态设置成功 |
10003 | SDK网络状态设置成功 |
10004 | SDKlog设置成功 |
10005 | SDK本地资源设置成功 |
10006 | SDK在线激活成功 |
10007 | SDK获取人脸鉴权文件成功 |
10008 | SDK语音组件初始化成功 |
10009 | SDK人脸组件初始化成功 |
10010 | SDK指令组件初始化成功 |
-10000 | SDK初始化失败 |
-10001 | SDK运行状态设置失败 |
-10002 | SDK网络状态设置失败 |
-10003 | SDKlog设置失败 |
-10004 | SDK本地资源设置失败 |
-10005 | SDK在线激活失败 |
-10006 | SDK获取aipe人脸鉴权文件失败 |
-10007 | SDK组件初始化失败 |
-10008 | SDK人脸组件初始化失败 |
-10009 | SDK语音组件初始化失败 |
-10010 | SDK指令组件初始化失败 |
-10013 | 语音组件状态码,串口设备为null |
-10014 | 语音组件状态码,IO接口错误 |
-10015 | SDK权限检测异常 |