开发准备
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();// 设置业务TokenauthConfig.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_versionytliveness_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": "进行活体需要摄像头权限"}