文档中心>人脸核身

集成文档

最近更新时间:2024-11-15 17:21:12

我的收藏

开发准备

1. 注册腾讯云账号,进入 人脸核身控制台,即可开通相应服务。
2. 从慧眼 SDK 下载链接中下载 SDK 到本地。

Harmony 端慧眼 SDK 接入流程

依赖环境

​当前 Harmony 版慧眼公有云 SDK 适用于 API 11(Harmony Next 4.0)及以上的版本.

接入步骤

1. 将 HuiyanPublicEnhancedSDK-3.x.x.x.har (具体版本号以 SDK 交付件为准)添加到您工程的 libs 目录下,如下所示:
├── HuiyanHarmonyDemo
│ ├── build-profile.json5
│ ├── hvigorfile.ts
│ ├── libs
│ │ └── HuiyanPublicEnhancedSDK-3.x.x.x.har <<<============== har包文件存放路径
│ ├── oh-package.json5
│ └── src
│ └── main
2. 添加授权文件
├── HuiyanHarmonyDemo
│ ├── build-profile.json5
│ └── src
│ └── main
│ ├── module.json5
│ └── resources
│ ├── rawfile
│ │ ├── dev.lic <<<============== 将申请到的授权文件(例如:名为dev.lic)存放至该路径下
│ └── zh_CN
│ └── element
注意:
dev.lic 授权文件是需要您主动申请的,您可以联系客服人员进行 license 申请。将申请到的 license 文件放到 rawfile 里,位置如上。
3. 在您工程的 oh-package.json5 中进行配置修改,具体可以参考下面内容:
{
"license": "",
"author": "",
"name": "HuiyanHarmonyDemo",
"description": "Please describe the basic information.",
"main": "",
"version": "1.0.0",
"dependencies": {
// 添加依赖
"HuiyanHarmonyEnhancedSDK": "file:./libs/HuiyanPublicEnhancedSDK-3.x.x.x.har",
}
}

SDK 接口使用说明

​初始化 SDK

​在您 App 初始化的时候调用 init 接口,主要是进行一些 SDK 的初始化操作。确保在用户阅读 App 隐私政策并取得用户授权之后,按 App 功能需要在合适时机调用正式初始化函数 HuiYanPublicApi.init 初始化 SDK。反之,如果用户不同意《隐私政策》授权,则不能调用正式初始化函数。
// 建议放在首页page.ets里
aboutToAppear() {
HuiYanPublicApi.init(getContext());
}

开始核身

当您需要启动活体核身检测的时候,只需要调用 HuiYanPublicApi.startHuiYanAuth 方法,同时传入此次核身需要的配置信息以及监听结果的回调即可。
// ----------构造config begin----------
let authConfig: AuthConfig = new AuthConfig();
// 设置业务Token
authConfig.faceIdToken = token;
// 注意:dev.lic文件需要您主动申请的,您可以联系客服人员进行license申请。
// 设置授权license的名称
authConfig.authLicense = 'dev.lic';
// 设置加密方式
authConfig.encryptMethod = HuiYanEncryptMode.SM4;
// 设置准备阶段的超时时间
authConfig.prepareTimeout = 15000;
// 设置动作阶段的超时时间
authConfig.actionTimeout = 20000;
// ----------构造config end----------

HuiYanPublicApi.startHuiYanAuth(authConfig, {
onSuccess: (faceIdToken: string) => {
// 核身成功
promptAction.showToast({ message: faceIdToken, duration: 1000 })
},
onFail: (errorCode: number, errorMsg: string, faceIdToken: string) => {
// 核身失败
promptAction.showToast({ message: `code: ${errorCode}, msg: ${errorMsg}, faceIdToken: ${faceIdToken}`, duration: 1000 })
}
});

SDK 资源释放

​ 在您 App 退出使用的时候,可以调用 SDK 资源释放接口。
// 建议放在首页page.ets里
aboutToDisappear() {
HuiYanPublicApi.release();
}

常见问题

1. 如何导出 SDK 日志文件?
hdc file recv /data/app/el2/100/base/<bundleName>/haps/<hapModuleName>/files/cloud-huiyan-logs/

2. 核身过程报错 'yt error, code=4194304' 是为什么?
一般发生这个错误是因为:变光(反光)阶段人脸移出了检测框;建议变光阶段按照 tips 提示保证人脸处于检测框内。

3. 编译报错:Error: ref '$string:txy_camera_permission_reason' don't be defined.
entry 模块下的 string.json 里添加
{
"name": "txy_camera_permission_reason",
"value": "进行活体需要摄像头权"
}

4. 混淆规则该怎么配置?
-keep-property-name
# 授权库native层相关符号
auth_init_by_bytes, auth_init_by_rawfilepath, auth_init_by_string, auth_get_endtime, auth_get_version
ytliveness_auth_init_by_bytes, ytliveness_auth_init_by_rawfilepath, ytliveness_auth_init_by_string, ytliveness_auth_get_endtime, ytliveness_auth_get_version

5. Resource name invalid 报错是为什么?
- 确认引用 [huiyan].har 的module的类型是否是 shared 类型,查看方法:module 下的 src/main/module.json5 里的 type 字段
- 如果是 shared 类型,需要在 SDK 配置参数里设置 moduleName 字段为 shared 类型 module 的 name 字段。
示例如下:
1. shared 类型module的module.json5文件
{
"module": {
"name": "library_shared", //==========> module名称
"type": "shared", //=========> module类型
"description": "$string:shared_desc",
"deviceTypes": [
"phone"
],
"deliveryWithInstall": true,
"pages": "$profile:main_pages"
}
}

2. 配置项里需要设置moduleName字段
let config = new AuthConfig();
// 配置moduleName字段为shared类型module的name字段
config.moduleName = 'library_shared';

6. Error: ref '$string:txy_camera_permission_reason' don't be defined.报错?
将 reason 引用的 string 手动在和慧眼 SDK 相关的 module(shared 类型和 entry)下的 string.json 里写一份
{
"name": "txy_camera_permission_reason",
"value": "进行活体需要摄像头权限"
}