Android SDK 集成文档
1. 离线变声能力简介(能力id:ed3816b44)
#2.授权说明
#3. 兼容机型
类别 | 兼容范围 |
---|---|
系统 | 支持Android 5.0 ~ Android 13 版本,鸿蒙系统未做系统兼容性验证 |
机型 | 上市的Android手机和平板、及符合具体能力性能要求的Android系统扫描笔、手表等设备 |
网络 | 对网络无要求,设备具备联网条件,可使用在线激活方式,首次使用需要连接网络。若设备不能联网,需要使用离线激活方式 |
开发环境 | 建议使用 Android Studio 进行开发 |
#4. SDK包组成
#5. 接口调用流程

#6. 快速集成指南
#6.1 导入SDK库
dependencies {
// 已忽略无关代码
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation files('libs/AIKit.aar')
}
#6.2 配置权限
权限 | 使用说明 |
---|---|
INTERNET | SDK需要访问网络获取、更新授权 |
READ_PHONE_STATE | 获取设备IMEI用于精准授权,IMEI加密存储,不会存储明文 |
WRITE_EXTERNAL_STORAGE | SDK写本地日志需要用到该权限 |
READ_EXTERNAL_STORAGE | SDK加载本地模型资源文件需要该权限 |
MOUNT_UNMOUNT_FILESYSTEMS | Android 11以上需要该权限 |
READ_PRIVILEGED_PHONE_STATE | Android 10 以后新增权限,同 READ_PHONE_STATE |
MANAGE_EXTERNAL_STORAGE | 获取所有文件的访问权限(Android 11以上需要该权限) |
READ_PHONE_NUMBERS | 获取设备IMEI用于精准授权,IMEI加密存储,不会存储明文(Android 11及以上获取) |
<!-- 移除SDK非必须权限示例 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" tools:node="remove" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
<application android:requestLegacyExternalStorage="true"/>
#6.3 资源导入
#6.4 SDK初始化
// 初始化参数构建
AiHelper.Params params = AiHelper.Params.builder()
.appId(appID)
.apiKey(apiKey)
.apiSecret(apiSecret)
.ability("ed3816b44")
.workDir("/sdcard/iflytek/aikit")//SDK工作路径,这里为绝对路径,此处仅为示例
.build();
// 初始化
AiHelper.getInst().init(this, params);
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
appID | String | 是 | 应用ID |
apiKey | String | 是 | 离线引擎托管平台创建应用后,生成的唯一应用标识 |
apiSecret | String | 是 | 离线引擎托管平台创建应用后,生成的唯一应用秘钥 |
workDir | String | 是 | SDK工作目录。默认读取能力资源、写SDK日志在此路径下 |
licenseFile | String | 否 | 离线授权license文件绝对路径,SDK离线激活方式,需要从离线引擎托管平台申请的离线授权license文件,放入设备指定路径中(可放入至SDK工作路径下),即licenseFile参数即为离线激活文件的绝对工作 路径。 |
customDeviceId | String | 否 | 用户自定义设备指纹块,默认为空,设置后会成为设备指纹的一部分,建议设置长度低于256 |
authType | int | 否 | 离线授权类型(0或1),0-->(默认)设备级授权(DEVICE)和 1-->应用级授权(APP) |
authInterval | int | 否 | 在线授权校验间隔时长,默认为300s,可自定义设置,最短为60s,单位秒 |
resDir | String | 否 | 指定资源读取路径,不设置默认从workDir读取 |
ability | String | 是 | SDK v2.2.13+版本新增接口,传入需要用到的一个或多个能力ID,格式为"xxxx1;xxxx2",多个能力ID中间用 **英文分号 **隔开,如果注册的能力非空,SDK将对传入的能力ID授权; |
#6.5 注册监听代理
AiHelper.getInst().registerListener(coreListener);// 注册SDK 初始化状态监听
AiHelper.getInst().registerListener("ed3816b44", aiRespListener);// 注册能力结果监听
#6.5.1 授权状态回调
```private AuthListener coreListener = new AuthListener() {
@Override
public void onAuthStateChange(final ErrType type, final int code) {
Log.i(TAG, "core listener code:" + code);
switch (type) {
case AUTH:
Log.i(TAG,"SDK状态:授权结果码" + code);
break;
case HTTP:
Log.i(TAG,"SDK状态:HTTP认证结果" + code);
break;
default:
Log.i(TAG,"SDK状态:其他错误");
}
}
};
参数 | 类型 | 说明 |
---|---|---|
type | ErrType | SDK错误类型,0 表示授权错误,1 表示 http 请求错误 |
code | int | 错误码,0 表示正常 |
#6.5.2 能力计算进度、结果回调
/**
* 能力监听回调
*/
private AiListener aiRespListener = new AiListener() {
@Override
public void onResult(int handleID, List<AiResponse> outputData, Object usrContext) {
if (null != outputData && outputData.size() > 0) {
for (int i = 0; i < outputData.size(); i++) {
byte[] bytes = outputData.get(i).getValue();
if (bytes == null) {
continue;
}
String key = outputData.get(i).getKey();
//获取到结果的key及value,可根据业务保存存储结果或其他处理
}
}
}
@Override
public void onEvent(int handleID, int event, List<AiResponse> eventData, Object usrContext);
}
@Override
public void onError(int handleID, int err, String msg, Object usrContext);
}
};
参数 | 类型 | 说明 |
---|---|---|
handleID | int | 会话ID |
outputData | List | 能力执行结果 |
usrContext | Object | 用户自定义标识 |
参数 | 类型 | 说明 |
---|---|---|
handleID | int | 会话ID |
event | int | 事件状态,0:未知错误;1:开始;2:结束;3:超时;4:进行中 |
eventData | List | 事件消息数据 |
usrContext | Object | 用户自定义标识 |
参数 | 类型 | 说明 |
---|---|---|
handleID | int | 会话ID |
err | int | 错误码 |
msg | String | 错误相关标识 |
usrContext | Object | 用户自定义标识 |
参数 | 类型 | 说明 |
---|---|---|
key | String | 输出数据名称 |
type | enum | 输出数据类型,0=音频 |
value | byte[] | 字节数组类型输出数据 |
varType | enum | 输出数据参数类型,0=字节数组 |
len | int | 输出数据长度 |
#6.6 能力调用接口
#6.6.1 创建会话start
AiRequest.Builder paramBuilder = AiRequest.builder();
//paramBuilder.param("speed", 0);
//paramBuilder.param("volume", 0);
//paramBuilder.param("pitch", 0);
//paramBuilder.param("vocoder_mode", 0);
paramBuilder.param("vcn", $paramValue);
//paramBuilder.param("input_channel", 1);
//paramBuilder.param("output_channel", 1);
//paramBuilder.param("volume_link", 0);
//paramBuilder.param("input_bit_depth", 1);
//paramBuilder.param("output_bit_depth", 1);
//paramBuilder.param("vad_switch", 0);
//paramBuilder.param("vad_beginTh", -75);
//paramBuilder.param("vad_endTh", -76);
//paramBuilder.param("input_samplerate", 16000);
//paramBuilder.param("output_samplerate", 16000);
AiHandle handle = AiHelper.getInst().start("ed3816b44",paramBuilder.build(),null);
if (!handle.isSuccess()) {
Log.e(TAG, "ERROR::START | handle code:" + handle.getCode());
return;
}
功能标识 | 功能描述 | 数据类型 | 取值范围 | 必填 | 默认值 |
---|---|---|---|---|---|
speed | 语速 | int | 最小值:-500, 最大值:500 | 否 | 0 |
volume | 音量 | int | 最小值:-32768, 最大值:32767 | 否 | 0 |
pitch | 音高 | int | 最小值:-500, 最大值:500 | 否 | 0 |
vocoder_mode | 声码器类型 | int | 0:自动模式, 1:普通模式 | 否 | 0 |
vcn | 选择发言人 | string | chongchong:chongchong发音人, doudou:doudou发音人, pengfei:pengfei发音人, yuxi:yuxi发音人, yifei:yifei发音人, xiaowanzi:xiaowanzi发音人, shuoyan:shuoyan发音人 | 是 | |
input_channel | 输入声道数 | int | 1:单声道, 2:双声道 | 否 | 1 |
output_channel | 输出声道数 | int | 1:单声道, 2:双声道 | 否 | 1 |
volume_link | 输入输出音量关联 | int | 0:关闭, 1:开启 | 否 | 0 |
input_bit_depth | 输入位深 | int | 1:16比特, 3:32比特, 0:8比特 | 否 | 1 |
output_bit_depth | 输出位深 | int | 1:16比特, 3:32比特, 0:8比特 | 否 | 1 |
vad_switch | 是否启用vad功能,注意:仅在实时模式下使用 | int | 0:关闭, 1:开启 | 否 | 0 |
vad_beginTh | vad前端点阈值 | double | 最小值:-115, 最大值:0 | 否 | -75 |
vad_endTh | vad后端点阈值 | double | 最小值:-115, 最大值:0 | 否 | -76 |
input_samplerate | 输入采样率 | int | 8000:8kHz, 16000:16kHz, 24000:24kHz, 44100:44.1kHz, 48000:48kHz | 否 | 16000 |
output_samplerate | 输出采样率 | int | 8000:8kHz, 16000:16kHz, 24000:24kHz, 44100:44.1kHz, 48000:48kHz | 否 | 16000 |
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
key | String | 是 | 功能参数名称 |
value | String/int/double/bool | 是 | 功能参数取值 |
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
ability | String | 是 | 能力标识ID |
request | AiRequest | 是 | 能力参数,可使用AiRequest.Builder快捷构建 |
usrContext | Object | 否 | 用户自定义标识 |
0=成功,其他=错误
#6.6.2 写入数据
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
input | AiRequest | 是 | 能力输入,可使用AiRequest.Builder快捷构建 |
handle | AiHandle | 是 | 会话的handle对象 |
AiRequest.Builder dataBuilder = AiRequest.builder();
AiStatus status;
if (isLast) {
status = AiStatus.END;
} else {
status =AiStatus.CONTINUE;
}
if (index == 0) {
status =AiStatus.BEGIN;
}
AiAudio aiAudio = AiAudio.get("audio").data(part).status(status).valid();
dataBuilder.payload(aiAudio);
ret = AiHelper.getInst().write(dataBuilder.build(), aiHandle);
//ret 值为0 写入成功;非0失败,请参照文档中错误码部分排查
if (ret != 0) {
String error = "start write failed" + ret;
Log.e(TAG, error);
}
字段 | 含义 | 数据类型 | 取值范围 | 默认值 | 说明 | 必填 |
---|---|---|---|---|---|---|
encoding | 音频编码 | string | lame, speex, opus, speex-wb | speex-wb | 取值范围可枚举 | 否 |
sample_rate | 采样率 | int | 16000 | 16000 | 音频采样率 | 否 |
channels | 声道数 | int | 1 | 1 | 声道数 | 否 |
bit_depth | 位深 | int | 16 | 16 | 单位bit | 否 |
data | 音频数据 | string | 音频大小:0-10M | 否 | ||
frame_size | 帧大小 | int | 最小值:0, 最大值:1024 | 0 | 帧大小,默认0 | 否 |
try{
int ret = AiHelper.getInst().read("ed3816b44", aiHandle);
if (ret != 0) {
String error = "start write failed" + ret;
Log.e(TAG, error);
}
}
} catch (Exception e) {
e.printStackTrace();
}
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
ability | String | 是 | 能力标识ID |
handle | AiHandle | 是 | 会话的handle对象 |
字段 | 含义 | 数据类型 | 取值范围 | 默认值 | 说明 | 必填 |
---|---|---|---|---|---|---|
encoding | 音频编码 | string | lame, speex, opus, speex-wb | speex-wb | 取值范围可枚 举 | 否 |
sample_rate | 采样率 | int | 16000 | 16000 | 音频采样率 | 否 |
channels | 声道数 | int | 1 | 1 | 声道数 | 否 |
bit_depth | 位深 | int | 16 | 16 | 单位bit | 否 |
data | 音频数据 | string | 音频大小:0-10M | 否 | ||
frame_size | 帧大小 | int | 最小值:0, 最大值:1024 | 0 | 帧大小,默认0 | 否 |
int ret = AiHelper.getInst().end(aiHandle);
if (ret != 0) {
String error = "end failed" + ret;
Log.e(TAG, error);
}
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
handle | AiHandle | 是 | 会话的handle对象 |
#6.7 SDK逆初始化
AiHelper.getInst().unInit();
#6.8 导入资源验证
#7. 高级功能
#7.1 日志配置
AiHelper.getInst().setLogInfo(LogLvl.DEBUG, 1, "/sdcard/iflytek/aikit");
参数 | 类型 | 说明 |
---|---|---|
参数 | 类型 | 说明 |
--- | --- | --- |
LogLvl | enum | 日志级别枚举值如下: DEBUG, INFO, WARN, ERROR, FATAL, OFF |
LogMode | int | 日志模式(stadout:0 logcat:1 file:2) |
LogPath | String | 日志路径(路径可根据实际需求进行修改) |
#7.2 参数配置
AiHelper.getInst().setConfig("licenseStoragePath","/sdcard/iflytek/aikit");
参数 | 类型 | 说明 |
---|---|---|
licenseStoragePath | String | 授权文件存储路径,Android平台默认保存在 SharePreference下,可通过该配置设置保存在其他路径下。 |
logMaxSize | String | 日志文件上限 |
#7.3 资源从asset读取
#Android平台常见问题
appid 未授权该SDK 能力,请申请授权后使用该能力。
appid、apiKey、apiSecret 配置有误,请检查配置。
apiKey 或 apiSecret 有误,请检查apiKey、apiSecret 的值是否正确,并替换为正确的值。
appid 不存在或appid 未授权,请使用正确的 appid。
SDK 初始化时设置的SDK工作路径即“workDir” 无读写权限,请确保SDK 初始化时,SDK工作路径具有读写权限。
能力(能力id为 xxxxxx)不存在,初始化引擎时传入的能力id有误,请检查能力id是否正确;或改能力未授权,请确认该能力是否已申请授权。
该错误为资源未找到,请检查是否将资源导入到了SDK的工作路径下。
流式接口能力,调用 AIKit_Start 或 start 方法开始的会话,未调用AIKit_End 或 end 方法打断或正常结束,再次调用AIKit_Srart则SDK会返回18310错误,同一个能力SDK不支持并发调用,需要结束本次会话之后,才能开始下一次会话。
请检查确认引擎初始化及调用能力时所传能力id参数是否正确;如果能力ID无误,SDK日志中打印的 xxxxxx 能力未授权。
应用安全等级与设备指纹不符,须申请调整appid 安全等级;
Caused by: java.security.InvalidParameterException
at com.iflytek.edgeAI.core.JLibrary$Params$Builder.build(Unknown Source:``41``)
at com.iflytek.AIKitsdkdemo.sdk.SDKHelper.initSdk(SDKHelper.java:``55``)``
at com.iflytek.AIKitsdkdemo.xtts.XTTSActivity.initSDK(XXXXActivity.java:``144``)
at com.iflytek.AIKitsdkdemo.xtts.XTTSActivity.onCreate(XXXXActivity.java:``81``)
at android.app.Activity.performCreate(Activity.java:``8214``)
#错误码
错误码 | 含义 | 自查指南 |
---|---|---|
18000 | 本地 license 文件不存在 | 离线激活方式,请检查离线授权文件路径下,license 文件是否存在;如果不存在,请将申请的离线授权文件放置在对应路径下; 在线激活方式下,请检查 workDir 目录下 license 文件是否存在,如果不存在,请将设备联网,重启应用。 |
18001/18002 /18003/18004 | 授权问题 | Linux 平台删除授权文件,将设备联网,重启应用,重新从云端获取授权文件; Android 端清除应用缓存,将设备联网,重启应用,重新从云端获取授权文件; 如仍有问题,请联系项目经理协助解决。 |
18005 | 授权已过期 | 能力授权已过期。 |
18006 | 授权时间错误,设备时间比标准时间慢 30 分钟以上 | 设备时间不准确导致,请校正设备时间为标准时间,重启应用。 |
18007 | 授权应用不匹配(apiKey、apiSecret) | apiKey、apiSecret配置有误,请核对项目中配置的 apiKey、apiSecret 。 |
18008 | 授权文件激活过期 | 非永久授权激活文件的有效期为 3天,Linux 平台删除授权文件、Android平台清除应用缓存后重启应用重新激活; 若设备无法联网,请重新申请离线激活文件,在 3 天内激活。 |
18010 | 离线授权激活文件指定平台与设备平台不匹配 | 批量授权激活文件不支持当前设备平台,离线批量授权文件仅只支持申请时指定的的特定平台,不可多平台混用。 |
18011 | 离线授权激活文件指定架构与设备 CPU 架构不匹配 | 批量授权激活文件不支持当前设备架构,离线批量授权文件仅只支持申请时制定的特定架构,不支持多架构混用。 |
18012 | 离线授权激活文件中包含 license 个数异常 | 离线批量激活文件异常,请检查设备中使用的离线激活文件与所申请的是否一致 |
18013 | 离线授权激活文件中未找到当前设备 | 批量离线授权激活文件中不包含改设备,请联网激活或申请离线授权激活文件。 |
18014 | 离线授权激活文件中设备指纹安全等级非法 | 离线授权文件中安全等级错误,请联系平台重新提供 |
18015 | 硬件授权验证失败 | - |
18016 | 离线授权激活文件内容非法 | 批量离线授权文件不合法,请替换正确的批量离线激活文件测试,如仍有问题,请联系项目经理协助解决。 |
18017 | 离线授权激活文件中协议头非法 | 批量离线授权文件不合法,请替换正确的批量离线激活文件测试,如仍有问题,请联系项目经理协助解决。 |
18018 | 离线授权激活文件中指纹组成项个数为0 | 未获取到有效的设备标识,例如 Android平台 Androidid 未获取到;Linux平台 MAC等未获取到。 |
18019 | 资源授权已过期 | 资源授权已过期,请申请追加资源有效期。 |
18100/18101/18102 | 资源错误 | 请仔细检查所用资源与平台提供的资源是否一致,可通过MD5对比,请使用提供SDK时附带的成套资源。 |
18103 | 资源参数不存在 | 请根据文档检查能力参数Key、Value 是否合法。 |
18104 | 资源路径打开失败 | 资源路径无读写权限,请确保在 SDK 初始化时以获取到读写权限,或将资源路径设置为有读写权限的路径下。 |
18105 | 资源加载失败,workDir 内未找到对应资源 | 请根据日志提示将所需资源导入到指定路径下 |
18106 | 资源卸载失败 | 请检查代码是否存在未初始化时调用 SDK uninit 方法,或多次调用 uninit 方法 |
18200 | 引擎鉴权失败 | 应用授权信息与SDK不对应。 1. 请尝试将设备联网后重启应用; 2. 请检查您项目中使用的SDK和平台提供的是否一致; |
18201 | 引擎动态加载失败 | 请检查日志中打印的引擎库是否已导入到项目中 |
18202 | 引擎未初始化 | 请检查调用能力前是否已初始化引擎及初始化是否成功。 |
18203 | 引擎不支持该接口调用 | 请参照 Demo 仔细检查方法调用是否正确 |
18205 | 引擎重复初始化 | 请根据文档检查引擎初始化方法是否存在重复调用,引擎初始化全局仅需初始化一次。 |
18206 | 引擎参数非法 | 请根据文档检查引擎初始化参数是否合法; |
18207 | 引擎上下文未注册 | - |
18301 | SDK未初始化 | 在使用能力前请先初始化 SDK,如果有调用 uninit 方法,再次使用能力时需要重新初始化。 |
18302 | SDK初始化失败 | 请根据CoreListener回调中返回的错误码参考此文档做对应检查 |
18303 | SDK 已经初始化 | 重复初始化导致,使用能力时,SDK 只需要初始化一次,请检查 SDK 初始化逻辑是否存在多次初始化。 |
18304 | 不合法参数 | 请参考demo及协议文件仔细检查所传参数是否正确;若确认无误,请联网后重启应用后重试 |
18305/18306 | 会话不存在或已销毁 | 1. 请检查 start 方法调用是否返回成功; 2. 请排查代码是否在调用 end 方法结束会话后又调用了 write 或read 方法。 3. 请确保 end 方法在能力执行完毕后调用,能力执行结果会在 onEvent 中回调。 |
18307 | 会话重复终止 | 该错误一般为重复调用 end 方法导致, 请仔细检查代码是否有重复调用 end 方法 |
18310 | 会话重复开启 | start 、end方法需成对调用,请仔细检查代码逻辑是否存在调用start 后未调用end结束会话,又再次调用start 情况出现 |
18400 | 工作目录无写权限 | 在设置 workDir 时,请确保该工作路径有读写权限。若无法设置读写权限,请修改为有读写权限的工作路径。 |
18401 | 未获取到设备标识 | 没有获取到组成设备指纹所必须的组成项,请确认 mac、AndroidID、SN 等是否能获取到,请根据授权安全等级确保能获取对应数量的设备标识。 |
18402 | 文件打开失败 | 请检查 日志中所打印的文件是否存在,以及对应路径下是否有读权限。 |
18404 | 设备指纹比较失败 | 设备指纹组成项发生变化导致,获取到的设备指纹与缓存的设备指纹不一致,请将设备联网后重启应用重试。 |
18500 | 未找到该参数 key | 请参照demo或协议文档仔细检查参数名拼写 |
18501 | 参数范围溢出,不满足约束条件 | 请根据协议检查调用 SDK 方法时所传参数范围,需要确保所传参数符合协议约束要求 |
18502 | SDK 初始化参数为空 | 请根据 SDK 集成文件检查 SDK 初始化代码,确保必填参数有值且合法 |
18503 | SDK 初始化参数中 appId 为空 | appId 为空值,请在 SDK 初始化时传入正确的 appId 值 |
18504 | SDK 初始化参数中 apiKey为空 | apiKey为空值,请在 SDK 初始化时传入正确的 apiKey值 |
18505 | SDK 初始化参数中 apiSecret 为空 | apiSecret 为空值,请在 SDK 初始化时传入正确的 apapiSecret 值 |
18506 | abilityId 参数为空 | abilityId 为空值,请检查 引擎初始化方法及调用能力方法时所传的 abilityId 是否正确 |
18507 | input 参数为空 | 请检查调用能力方法时 input 参数是否为空 |
18508 | 输入数据参数 Key 不存在 | 请根据协议文档检查输入参数的 key |
18509 | 必填参数缺失 | 请根据文档或demo检查参数漏传项 |
18510 | 输出参数缺失 | 能力输出参数缺失 |
18520 | 不支持的编解码类型 | 输入的编解码格式不支持 |
18600 | 协议中时间戳字段缺失 | 请将设备联网后重启应用 |
18601 | 协议中未找到该能力 ID | 请确认 SDK 初始化时所传 appId、 apiKey、apiSecret 是否正确; 若无误请删除授权文件或清空应用缓存后重启应用; 请确认所传能力 ID 是否正确; 请联系平台协助排查授权是否已过期或授权量已用完。 |
18602 | 协议中未找到该资源 | 请确认 SDK 初始化时所传 appId、 apiKey、apiSecret 是否正确; 请将设备联网后重新应用重试; 请确认是否已申请授权过该资源。 |
18603 | 协议中未找到该引擎 | 请确认 SDK 初始化时所传 appId、 apiKey、apiSecret 是否正确; 请将设备联网后重新应用重试; 请确认项目中使用SDK版本是否正确。 |
18606 | 协议能力接口类型不匹配 | 请根据协议检查能力接口类型是否一致,流式与非流式接口不可混用 |
18700 | 能力未授权 | 该SDK未授权,请联系项目经理申请授权 |
18701 | 网络不通 | 请检查网络连接是否正常 |
18702 | 网关检查不过 | 检查设备时间是否正确; 请检查 SDK 初始化时所传 apiKey、apiScrect 是否正确; |
18703 | 云端响应格式不对 | 请检查网络是否可以正常访问外网 |
18704 | 应用未注册 | 请检查appid 是否正确 |
18705 | 应用 ApiKey & ApiSecret 校验失败 | 请检查 apiKey、apiSecret 是否正确 |
18706 | 引擎不支持的平台架构 | 您所使用的能力不支持该设备平台架构,请确认申请的SDK支持的平台架构。 |
18707 | 授权已过期 | 如需继续使用请申请授权延期 |
18708 | 无可用授权 | 1. 该能力不支持当前平台架构的设备; 2. 授权量已满 |
18709 | 未找到该 appid 绑定的能力 | 请检查 appId 是否正确;请确认是否已购买该能力 |
18710 | 未找到该 appid 绑定的资源 | 请检查 appId 是否正确;请检查是否已申请受限资源 |
18713 | 设备指纹安全等级不匹配 | 设备指纹安全等级不匹配,请申请申请安全等级变更 |
18714 | 应用信息错误 | 一般为apiKey、apiSecret值有误,请检查 appid、apiKey、apiSecret 的值是否正确。 |
18715 | 未找到该SDKID | 该组合能力SDK未授权,请申请授权 |
18716 | 未找到该组合能力集合 | 该组合能力未创建,请申请授权 |
18717 | SDK组合能力授权不足 | 组合能力授权量已用完,需申请追加授权 |
18718 | 无效授权应用签名 | 应用级授权,应用签名与授权签名不一致 |
18719 | 应用签名不唯一 | 应用级授权,提供的应用签名有误 |
18720 | 能力schema不可用 | 请联系平台技术人员解决 |
18721 | 未找到能力集模板 | 请联系平台技术人员解决 |
18722 | 能力不在模板能力集模板中 | 该能力未授权 ,请申请授权 |
18801 | 建立链接错误 | - |
18802 | 结果等待超时 | - |
#引擎错误码
错误码 | 含义 |
---|---|
32768 | unimplemented function |
32769 | unsupported on this platform |
32770 | invalid handle |
32771 | invalid parameter(s) |
32772 | insufficient heap size |
32773 | refuse to do in current state |
32774 | invalid parameter ID |
32775 | invalid parameter value |
32776 | Resource is error |
32777 | read resource error |
32778 | the Endian of SDK is error |
32779 | the HeadFile is different of the SDK |
32780 | get data size exceed the data buffer |
32781 | the encryption and decryption fail |
32782 | the encryption and decryption fail |
32783 | invalid check mode |
32784 | mode error |
32785 | PIN check fail |
32786 | check fail |
32787 | fun use fail |
32788 | ZSTD PARAM fail |
修改于 2023-12-19 06:48:13