Pular para o conteúdo principal

Liveness (selfie biométrica)

Captura de selfie biométrica com verificação de liveness integrada. O SDK guia o usuário até que um frame biometricamente válido seja obtido via SmartFrames e retorna a imagem como Base64 + JWT (JSON Web Token — um payload assinado enviado ao seu backend para chamar a API REST).

Capability

Este tipo de captura usa a capability de Liveness. Para uma visão conceitual de como o Liveness funciona, consulte a página da capability Liveness.

Como funciona

O SDK gerencia a sessão de captura completa:

  1. Abre a câmera com a sobreposição SmartFrame.
  2. Guia o usuário para posicionar o rosto dentro do frame.
  3. Valida o liveness — a sessão só é concluída quando o usuário está fisicamente presente.
  4. Retorna um objeto ResultCamera com base64 e encrypted (JWT).
Iniciando uma captura de liveness
Passo 1 — Implementar AcessoBioListener

AcessoBioListener trata os callbacks de ciclo de vida do SDK. Implemente os quatro métodos obrigatórios:

MétodoQuando é chamado
onErrorAcessoBio(errorBio)Ocorreu um erro durante a operação do SDK
onUserClosedCameraManually()O usuário fechou a câmera manualmente
onSystemClosedCameraTimeoutSession()O limite de tempo da sessão foi atingido — consulte Limites de sessão
onSystemChangedTypeCameraTimeoutFaceInference()O limite de tempo de inferência facial foi atingido — alterna para captura manual — consulte Limites de sessão
val callback = object : AcessoBioListener {
override fun onErrorAcessoBio(errorBio: ErrorBio?) { }
override fun onUserClosedCameraManually() { }
override fun onSystemClosedCameraTimeoutSession() { }
override fun onSystemChangedTypeCameraTimeoutFaceInference() { }
}
Passo 2 — Implementar iAcessoBioSelfie

iAcessoBioSelfie trata os callbacks de resultado da captura de selfie:

MétodoDescrição
onSuccessSelfie(result)Captura bem-sucedida — retorna ResultCamera com base64 (prévia) e encrypted (JWT para a API)
onErrorSelfie(errorBio)Captura falhou — retorna um ErrorBio com código e descrição
Expiração do token

O intervalo entre a geração de encrypted e o envio para a API não deve exceder 10 minutos.

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

Com unicoCheckCamera inicializado e ambos os listeners implementados, chame prepareCamera passando a configuração do SDK (o UnicoConfig criado em Inicialização) e um SelfieCameraListener:

  • onCameraReady — câmera pronta; chame open passando o selfieListener do Passo 2.
  • onCameraFailed — preparação da câmera falhou; trate a mensagem de erro.
unicoCheckCamera
.prepareCamera(UnicoConfig(), object : SelfieCameraListener {
override fun onCameraReady(cameraOpener: UnicoCheckCameraOpener.Selfie?) {
cameraOpener?.open(selfieListener)
}
override fun onCameraFailed(message: String?) { }
})

Para o tratamento completo do resultado, consulte Recebendo o resultado.