Android 活体检测接入文档

# Android 活体检测接入文档 ## 功能描述 本文档介绍应用中怎么快速完成 Android 活体检测 SDK 的接入,SDK 采用 Kotlin 开发。 ## 接入准备 ### 添加依赖 在项目根目录的 `build.gradle` 中添加 maven 仓库配置: ```gradle maven { url 'https://maven.aitime.credit/repository/risk' } ``` 在项目的 `app` 模块 `build.gradle` 中添加库依赖: ```gradle implementation 'com.aitime.liveness:liveness:1.6' ``` ### 初始化 ```kotlin Liveness.getInstance().init(application, appKey, market) ``` 参数说明: - `appKey:`活体检测appKey - `market:`市场,详见 `Market` 活体检测支持以下市场: - `Market.Colombia`:哥伦比亚 - `Market.Peru`:秘鲁 - `Market.India`:印度 - `Market.Nigeria`:尼日利亚 - `Market.Chile`:智利 - `Market.CostRica`:哥斯达黎加 - `Market.Panama`:巴拿马 - `Market.Mexico`:墨西哥 - `Market.Other`:其他 ### 设置域名(可选) ```kotlin Liveness.getInstance().setDomain(domain) ``` 参数说明: - `domain:`活体检测域名 ### 设置活体检测动作 ```kotlin Liveness.getInstance().setDetectionType(detectionTypes) ``` 参数说明: - `detectionTypes:`活体检测动作,可以指定多个动作,详见 `DetectionType` 活体检测动作支持以下类型: - `DetectionType.ALL`:全部 - `DetectionType.RANDOM`:随机 - `DetectionType.BLINK`:眨眼 - `DetectionType.MOUTH`:张嘴 - `DetectionType.SHAKING`:摇头 > **`Tips:`**活体检测动作 `DetectionType.ALL` 和 `DetectionType.RANDOM` 只能单独使用,不能和其他动作一起指定! ### 活体检测 ```kotlin Liveness.getInstance().detectorFace(object : OnFaceDetectorCallback { override fun onSuccess(result: LivenessResult) { // 检测成功时会返回活体ID和活体图片 val livenessId = result.getLivenessId() // 活体ID val livenessBitmap = result.getLivenessBitmap() // 活体图片 } override fun onFailed(code: Int, message: String?) { // 检测失败时会返回错误码及错误信息 Toast.makeText(context, "[$code]$message", Toast.LENGTH_SHORT).show() } }) ``` > 活体检测成功后,会返回唯一的 livenessId 和本次检测的正面照片。 > - 您需要将 livenessId 传给您的服务端,由服务端调用 API 获取本次检测的分值。 > - 您可以通过 SDK 提供的方法直接获取图片,也可以由服务端调用 API 获取。 ## 其他 ### 运行时权限 本 SDK 需要如下权限,并且已经在 aar 的清单文件中做了配置,无需额外添加权限。 ```xml <uses-feature android:name="android.hardware.camera" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.INTERNET" /> ``` ### 代码混淆 SDK 已经做好了代码混淆,无需额外增加配置。 ### 关于AndroidX 考虑到 support 库现在已不再维护,本 SDK 全部是基于 AndroidX 包开发,如果您的项目使用的是 support 类包,请 [迁移至 AndroidX](https://developer.android.com/jetpack/androidx/migrate)。 ### SDK 兼容性 - 最低 Android 版本: 5.0+ (API Level: 21) - SDK 编译版本:API Level: 32 - 支持的 CPU 架构: `armeabi-v7a`、`arm64-v8a`、`x86`、`x86_64` ## 错误码 错误码详见 `com.aitime.liveness.config.DetectionCode` 类: | 错误码 | 解释说明 | 解决办法 | | :---------------- | :------------------ | :-------------------- | | `SUCCESS` | 活体检测成功 | / | | `NOT_INIT` | SDK为初始化 | 请初初始化SDK | | `NOT_SUPPORT` | 设备不支持 | 设备无可用摄像头 | | `NO_TYPE` | 未指定活体检测动作 | 请指定活体检测动作 | | `NO_PERMISSION` | 用户未授予相机权限 | 引导用户授予相机权限 | | `BAD_NETWORK` | 网络环境异常 | 引导用户检查网络环境 | | `TIME_OUT` | 用户动作超时 | / | | `USER_CANCELED` | 用户取消检测 | / | | `DATA_ERROR` | 数据异常 | 请联系我们 | | `NOT_ALLOWED` | 请求不允许 | 请联系我们 | | `AUTH_FAILED` | 请求校验失败 | 请检查包名和传入参数 | | `LIVENESS_FAILED` | 活体检测失败 | 请联系我们 |