开发准备
1. 注册腾讯云账号,进入 人脸核身控制台,即可开通相应服务。
2. 从慧眼 SDK 下载链接中下载 SDK,并集成到本地。
Android 端慧眼 SDK 接入流程
SDK 提供了 HuiyanPublicEnhancedSDK-release-4.x.x.x.aar (具体版本号以 SDK 交付件为准)以及其他基础组件库(具体版本号以官网下载为准),这些 aar 文件封装了人脸活体检测的功能。
依赖环境
当前 Android 版慧眼公有云(增强版)SDK 适用于 API 21(Android 5.0)及以上的版本。
接入步骤
1. 添加依赖
将 HuiyanPublicEnhancedSDK-release-4.x.x.x.aar (具体版本号以 SDK 交付件为准)以及其他基础组件库添加到您工程 module 下的 libs 目录里(注:是 module 下的 libs 非工程根目录下的 libs),如下所示:
├── HuiYanPublicEnhancedDemo(module)│ ├── libs│ │ │── HuiyanPublicEnhancedSDK-release-4.x.x.x.aar│ │ │── HuiYan-Secret4lib-1.0.1-release.aar│ │ │── tencent-ai-sdk-aicamera-2.0.1-release.aar│ │ │── tencent-ai-sdk-common-2.0.1.1-release.aar│ │ │── tencent-ai-sdk-network-2.0.1.3-release.aar│ │ │── tencent-ai-sdk-youtu-base-1.0.1.44-release.aar│ │ │── huiyanmodels_1.0.2_release.aar│ └── src│ └── main
2. 添加授权文件
├── HuiYanPublicEnhancedDemo│ ├── build.gradle│ ├── libs│ ├── proguard-rules.pro│ └── src│ └── main│ ├── AndroidManifest.xml│ ├── assets│ │ └── YTFaceSDK.license│ ├── java│ └── res
注意:
YTFaceSDK.license 文件是需要您主动申请的,您可以联系客服人员进行 license 申请,将申请到的 license 文放到 assets 里位置如上。
对于需要兼容 Android 6.0以上的用户,以上权限除了需要在 AndroidManifest.xml 文件中声明外,还需使用代码动态申请权限。
3. 修改 build.gradle
接下来需要在您工程的 build.gradle 中添加依赖,具体可以参考下面内容:
dependencies {implementation files("libs/HuiYanPublicEnhancedSDK-release-4.x.x.aar")// 国密库implementation files("libs/HuiYan-Secret4lib-1.0.1-release.aar")// 慧眼基础组件库implementation files("libs/tencent-ai-sdk-aicamera-2.0.1-release.aar")implementation files("libs/tencent-ai-sdk-common-2.0.1.1-release.aar")implementation files("libs/tencent-ai-sdk-network-2.0.1.3-release.aar")implementation files("libs/tencent-ai-sdk-youtu-base-1.0.1.44-release.aar")// 慧眼SDK的模型库implementation files("libs/huiyanmodels_1.0.2_release.aar")// 语音播放资源组件【可选】implementation files("libs/huiyanaudios_1.0.2_release.aar")}
4. 权限声明
接下来需要在应用 AndroidManifest.xml 中加S加 SDK 需权限:
<!-- 摄像头权限 --><uses-permission android:name="android.permission.CAMERA" /><uses-featureandroid:name="android.hardware.camera"android:required="true" /><!-- SDK需要的权限 --><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!-- 可选 --><uses-permission android:name="android.permission.READ_PHONE_STATE" />
5. 混淆规则配置
如果您的应用开启了混淆功能,为确保 SDK 的正常使用,请把以下部分添加到您的混淆文件中:
# 慧眼模块-keep class com.tencent.cloud.huiyan.** {*;}-keep class com.tencent.youtu.** {*;}# 安全模块-keep class com.tencent.turingcam.** {*;}-keep class com.tencent.turingfd.** {*;}-keep class com.tencent.turingface.** {*;}-keep class com.tenpay.utils.** {*;}# 公共组件库-keep class com.tencent.cloud.aicamare.** {*;}-keep class com.tencent.cloud.component.** {*;}-keep class com.tencent.cloud.ai.network.** {*;}
SDK 接口使用说明
初始化
在您 App 初始化的时候调用,推荐在 Application 中调用,主要是进行一些 SDK 的初始化操作。 确保在用户阅读 App 隐私政策并取得用户授权之后,按 App 功能需要在合适时机调用正式初始化函数 HuiYanAuth.init 初始化 SDK。反之,如果用户不同意《隐私政策》授权,则不能调用正式初始化函数。
@Overridepublic void onCreate() {super.onCreate();instance = this;HuiYanAuth.init(getApp());}
设置获取 SdkToken 的方法
在使用慧眼 SDK 之前,需要配置 SdkToken 参数。
// 启动活体核身的配置信息AuthConfig authConfig = new AuthConfig();// 此license文件存放在assets下,需要客户提前申请authConfig.setAuthLicense("YTFaceSDK.license");// 设置SDK TokenauthConfig.setSdkToken(token);
启动活体核身
当您需要启动活体核身检测的时候,只需要调用 HuiYanAuth.startHuiYanAuth()函数,同时传入此次核身需要的配置信息以及监听结果的回调即可。
HuiYanAuth.startHuiYanAuth(authConfig, new HuiYanAuthResultListener() {@Overridepublic void onSuccess(String faceIdToken) {String showText = "认证成功 faceIdToken: " + faceIdToken;Log.e(TAG, showText);Toast.makeText(App.getApp(), showText, Toast.LENGTH_SHORT).show();}@Overridepublic void onFail(int errorCode, String errorMsg, String faceIdToken) {String showText = "认证失败 code: " + errorCode + " msg: " + errorMsg + " faceIdToken: " + faceIdToken;Log.e(TAG, showText);Toast.makeText(App.getApp(), showText, Toast.LENGTH_SHORT).show();}});
注意
AuthConfig 主要为配置参数信息,可以参考 Android 端 API 概述 文档里有关 AuthConfig 的详细说明。 请您注意,SDK 不强制获取可选参数,即使没有获取可选参数,SDK 基本功能也能正常运行。您可以配置可选参数,以便使用 SDK 提供的其他可选功能。
SDK 资源释放
在您 App 退出使用的时候,可以调用 SDK 资源释放接口。终端用户撤销同意处理其个人信息的授权时,您可通过调用 release()接口关闭 SDK 功能并停止采集用户数据,您可以按如下步骤实现。
@Overrideprotected void onDestroy() {super.onDestroy();// 主动资源释放HuiYanAuth.release();}
常见问题
1. 集成慧眼后出现 invoke-custom are only supported starting with Android O (--min-api 26)错误?
需要在 build.gradle 中添加如下配置:
// java版本支持1.8compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}
2. 如果集成方使用了 AndResGuard 的混淆工具,可以添加混淆配置:
// for HuiYanSDK"R.string.ocr_*","R.string.rst_*","R.string.net_*","R.string.msg_*","R.string.fl_*",