Skip to main content
Este guia mostra a API pública do LivenessIdentySDK e o fluxo completo de uma verificação de vivacidade.

API pública

A fachada do SDK fica em com.vcc.vendor.identy.sdk.LivenessIdentySDK:
  • init é uma suspend fun que retorna Result<Unit>. Não é idempotente: chamá-la de novo sem antes chamar stop() falha com LivenessIdentySDKInitError.AlreadyInitialized.
  • getSessionData coleta a assinatura de dispositivo (biblioteca de fingerprint) e nunca falha — veja Dados de sessão.
  • startLivenessCheck requer a Activity chamadora e o sessionToken criado pelo seu backend. options é opcional — veja Opções de captura.
  • stop() libera o estado interno do SDK.
  • isInitialized indica se init foi concluído com sucesso e stop() ainda não foi chamado.
As credenciais internas do SDK (biblioteca de fingerprint, Sentry) são embutidas e cifradas no AAR. Nenhuma chave precisa ser fornecida pelo app consumidor.

Configuração

Erros de inicialização — LivenessIdentySDKInitError

Em caso de falha, o Result de init() traz um LivenessIdentySDKInitError:

Dados de sessão

Depois de init(), colete a assinatura de dispositivo da biblioteca de fingerprint com getSessionData():
getSessionData() nunca falha — não retorna Result. A coleta de ssid é best-effort: se a biblioteca de fingerprint falhar internamente, ou se a função for chamada antes de init(), o ssid vem vazio (""). Quando isso acontecer, omita o campo ssid ao criar a sessão — a sessão é criada normalmente, apenas sem os metadados de dispositivo.

Criação de sessão — responsabilidade do consumer app

O SDK não cria sessões nem se comunica diretamente com o backend de autenticação. Após init(), o consumer app deve:
  1. Chamar getSessionData() para obter o ssid.
  2. Enviar ssid (quando não vazio) e um clientRequestId (UUID gerado pelo seu app) ao seu próprio backend.
  3. O seu backend chama POST /api/v1/sessions com a sua x-api-key, e o serviço devolve o sessionToken.
  4. Passar o sessionToken para startLivenessCheck().
Veja Serviços para o contrato do POST /api/v1/sessions.

Estados do Flow

startLivenessCheck retorna um Flow<LivenessIdentySDKLivenessState>:

Fluxo de uso

1

Inicializar o SDK

Chame LivenessIdentySDK.init uma única vez, preferencialmente no onCreate() da Application:
2

Coletar dados de sessão e criar sessão no backend

3

Iniciar a verificação

O SDK solicita a permissão de câmera em runtime antes de abrir a captura. Se o usuário recusar, o fluxo termina com CameraPermissionDenied ou CameraPermissionPermanentlyDenied.
4

Tratar o resultado

No caso de sucesso, verifique sempre status == CaptureStatus.PASSED para confirmar aprovação biométrica. No caso de erro, mapeie cada subtipo de LivenessIdentySDKError para uma mensagem ou ação adequada — veja Solução de problemas.

Opções de captura

startLivenessCheck() aceita o parâmetro opcional options para ajustar, por captura, o nível de segurança do anti-spoofing, o nível de detecção de deepfake e os formatos de template retornados:
requiredTemplates sempre inclui JPEG — mesmo que você não o liste, o SDK o coloca em primeiro lugar e remove duplicatas. Os formatos adicionais aparecem em LivenessIdentySDKResultData.templates, quando o backend os retorna. As opções valem só para a chamada em que foram passadas: uma captura sem options volta aos padrões.

Campos de LivenessIdentySDKResultData

Success não implica aprovação biométrica. Sempre verifique status == CaptureStatus.PASSED para confirmar que a prova de vida passou.

Exemplo de tratamento de erro

A hierarquia completa de erros, com causa e ação recomendada para cada subtipo, está em Solução de problemas.

Parando o SDK

LivenessIdentySDK.stop() libera todos os recursos internos do SDK e reseta seu estado, deixando-o exatamente como estava antes do primeiro init().

Próximos passos

Customização

Personalize a UI de captura do IDENTY Face AI

Solução de problemas

Hierarquia de erros e dicas de diagnóstico