活体检测(生物特征自拍)
带有内嵌活体验证的生物特征自拍采集。SDK 通过 SmartFrames 引导用户直到获取生物特征有效帧,并以 Base64 + JWT(JSON Web Token — 发送给您的后端以调用 REST API 的已签名载荷)格式返回图像。
能力
此采集类型使用 Liveness 能力。有关 Liveness 工作原理的概念性概述,请参阅 Liveness 能力页面。
工作原理
SDK 管理完整的采集会话:
- 打开带有 SmartFrame 覆盖层的摄像头。
- 引导用户将面部定位在框架内。
- 验证活体——仅当用户实际在场时会话才会完成。
- 返回包含
base64和encrypted(JWT)的ResultCamera对象。
启动活体采集
步骤 1 — 实现 AcessoBioListener
AcessoBioListener 负责处理 SDK 生命周期回调。请实现以下四个必需方法:
| 方法 | 调用时机 |
|---|---|
onErrorAcessoBio(errorBio) | SDK 操作过程中发生错误 |
onUserClosedCameraManually() | 用户手动关闭了摄像头 |
onSystemClosedCameraTimeoutSession() | 已达到会话时间限制 — 请参阅会话限制 |
onSystemChangedTypeCameraTimeoutFaceInference() | 已达到人脸推断时间限制 — 切换为手动拍摄 — 请参阅会话限制 |
- Kotlin
- Java
val callback = object : AcessoBioListener {
override fun onErrorAcessoBio(errorBio: ErrorBio?) { }
override fun onUserClosedCameraManually() { }
override fun onSystemClosedCameraTimeoutSession() { }
override fun onSystemChangedTypeCameraTimeoutFaceInference() { }
}
AcessoBioListener callback = new AcessoBioListener() {
@Override
public void onErrorAcessoBio(ErrorBio errorBio) { }
@Override
public void onUserClosedCameraManually() { }
@Override
public void onSystemClosedCameraTimeoutSession() { }
@Override
public void onSystemChangedTypeCameraTimeoutFaceInference() { }
};
步骤 2 — 实现 iAcessoBioSelfie
iAcessoBioSelfie 处理自拍采集结果的回调:
| 方法 | 描述 |
|---|---|
onSuccessSelfie(result) | 采集成功——返回包含 base64(预览)和 encrypted(用于 API 的 JWT)的 ResultCamera |
onErrorSelfie(errorBio) | 采集失败——返回包含代码和描述的 ErrorBio |
令牌过期
生成 encrypted 与将其提交至 API 之间的时间间隔不得超过 10 分钟。
- Kotlin
- Java
val selfieListener = object : iAcessoBioSelfie {
override fun onSuccessSelfie(result: ResultCamera?) { }
override fun onErrorSelfie(errorBio: ErrorBio?) { }
}
iAcessoBioSelfie selfieListener = new iAcessoBioSelfie() {
@Override
public void onSuccessSelfie(ResultCamera result) { }
@Override
public void onErrorSelfie(ErrorBio errorBio) { }
};
步骤 3 — 调用 prepareCamera
初始化 unicoCheckCamera 并实现两个监听器后,调用 prepareCamera,传入 SDK 配置(即在初始化中创建的 UnicoConfig)和 SelfieCameraListener:
onCameraReady— 摄像头已就绪;调用open并传入步骤 2 中的selfieListener。onCameraFailed— 摄像头准备失败;处理错误消息。
- Kotlin
- Java
unicoCheckCamera
.prepareCamera(UnicoConfig(), object : SelfieCameraListener {
override fun onCameraReady(cameraOpener: UnicoCheckCameraOpener.Selfie?) {
cameraOpener?.open(selfieListener)
}
override fun onCameraFailed(message: String?) { }
})
unicoCheckCamera
.prepareCamera(new UnicoConfig(), new SelfieCameraListener() {
@Override
public void onCameraReady(UnicoCheckCameraOpener.Selfie cameraOpener) {
cameraOpener.open(selfieListener);
}
@Override
public void onCameraFailed(String message) { }
});
有关完整的结果处理,请参阅接收结果。