Saltar al contenido principal

Liveness (selfie biométrica)

Captura de selfie biométrica con verificación de liveness incorporada. El SDK guía al usuario hasta obtener un fotograma biométricamente válido mediante SmartFrames y devuelve la imagen como Base64 + JWT (JSON Web Token — un payload firmado que se envía a tu backend para llamar a la API REST).

Capability

Este tipo de captura utiliza la capability Liveness. Para una descripción conceptual del funcionamiento de Liveness, consulta la página de la capability Liveness.

Cómo funciona

El SDK gestiona la sesión de captura completa:

  1. Abre la cámara con la superposición SmartFrame.
  2. Guía al usuario para que posicione su rostro dentro del marco.
  3. Valida el liveness — la sesión solo se completa cuando el usuario está físicamente presente.
  4. Devuelve un objeto ResultCamera con base64 y encrypted (JWT).
Iniciar una captura de liveness
Paso 1 — Implementar AcessoBioListener

AcessoBioListener gestiona los callbacks del ciclo de vida del SDK. Implemente los cuatro métodos obligatorios:

MétodoCuándo se llama
onErrorAcessoBio(errorBio)Ocurrió un error durante la operación del SDK
onUserClosedCameraManually()El usuario cerró la cámara manualmente
onSystemClosedCameraTimeoutSession()Se alcanzó el límite de tiempo de sesión — ver Límites de sesión
onSystemChangedTypeCameraTimeoutFaceInference()Se alcanzó el límite de tiempo de inferencia facial — cambia a captura manual — ver Límites de sesión
val callback = object : AcessoBioListener {
override fun onErrorAcessoBio(errorBio: ErrorBio?) { }
override fun onUserClosedCameraManually() { }
override fun onSystemClosedCameraTimeoutSession() { }
override fun onSystemChangedTypeCameraTimeoutFaceInference() { }
}
Paso 2 — Implementar iAcessoBioSelfie

iAcessoBioSelfie gestiona los callbacks del resultado de captura de selfie:

MétodoDescripción
onSuccessSelfie(result)Captura exitosa — devuelve ResultCamera con base64 (vista previa) y encrypted (JWT para la API)
onErrorSelfie(errorBio)Captura fallida — devuelve un ErrorBio con código y descripción
Expiración del token

El intervalo entre la generación de encrypted y su envío a la API no debe superar los 10 minutos.

val selfieListener = object : iAcessoBioSelfie {
override fun onSuccessSelfie(result: ResultCamera?) { }
override fun onErrorSelfie(errorBio: ErrorBio?) { }
}
Paso 3 — Llamar a prepareCamera

Con unicoCheckCamera inicializado y ambos listeners implementados, llama a prepareCamera pasando la configuración del SDK (el UnicoConfig creado en Inicialización) y un SelfieCameraListener:

  • onCameraReady — la cámara está lista; llama a open pasando el selfieListener del Paso 2.
  • onCameraFailed — la preparación de la cámara falló; gestiona el mensaje de error.
unicoCheckCamera
.prepareCamera(UnicoConfig(), object : SelfieCameraListener {
override fun onCameraReady(cameraOpener: UnicoCheckCameraOpener.Selfie?) {
cameraOpener?.open(selfieListener)
}
override fun onCameraFailed(message: String?) { }
})

Para el manejo completo del resultado, consulta Recibir el resultado.