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).
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.
O SDK gerencia a sessão de captura completa:
- Abre a câmera com a sobreposição SmartFrame.
- Guia o usuário para posicionar o rosto dentro do frame.
- Valida o liveness — a sessão só é concluída quando o usuário está fisicamente presente.
- Retorna um objeto
ResultCameracombase64eencrypted(JWT).
Passo 1 — Implementar AcessoBioListener
AcessoBioListener trata os callbacks de ciclo de vida do SDK. Implemente os quatro métodos obrigatórios:
| Método | Quando é 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 |
- 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() { }
};
Passo 2 — Implementar iAcessoBioSelfie
iAcessoBioSelfie trata os callbacks de resultado da captura de selfie:
| Método | Descriçã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 |
O intervalo entre a geração de encrypted e o envio para a API não deve exceder 10 minutos.
- 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) { }
};
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; chameopenpassando oselfieListenerdo Passo 2.onCameraFailed— preparação da câmera falhou; trate a mensagem de erro.
- 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) { }
});
Para o tratamento completo do resultado, consulte Recebendo o resultado.