Captura de documentos
Captura de documentos de identidade. O SDK apresenta um frame para auxiliar o usuário no posicionamento do documento; após o posicionamento, o usuário clica no botão para capturar a foto.
O SDK não realiza nenhum tipo de validação sobre o que está sendo capturado.
| Frame | Descrição |
|---|---|
DocumentCameraTypes.CPF | Captura o CPF |
DocumentCameraTypes.CNH | Captura a CNH aberta |
DocumentCameraTypes.CNH_FRENTE | Captura a frente da CNH |
DocumentCameraTypes.CNH_VERSO | Captura o verso da CNH |
DocumentCameraTypes.RG_FRENTE | Captura a frente do RG |
DocumentCameraTypes.RG_VERSO | Captura o verso do RG |
DocumentCameraTypes.OUTROS("descrição") | Frame genérico para qualquer outro documento |
Se você precisar capturar um documento para o qual não há um frame específico (por exemplo, RNE), use DocumentCameraTypes.OUTROS("description") — um frame genérico e retangular que pode ser utilizado para guiar qualquer captura.
Para a lista completa de tipos de documentos suportados, consulte Referência de API > Enums.
Passo 1 — Implementar UnicoListener
UnicoListener trata os callbacks do ciclo de vida do SDK. Implemente os quatro métodos obrigatórios:
| Método | Quando é chamado |
|---|---|
onErrorUnico(error) | Ocorreu um erro durante a operação do SDK |
onUserClosedCameraManually() | O usuário fechou a câmera manualmente |
onSystemClosedCameraTimeoutSession() | O limite de 40 segundos da sessão foi atingido |
onSystemChangedTypeCameraTimeoutFaceInference() | Nenhum rosto detectado por 13 segundos — muda para captura manual |
class _MyHomePageState extends State<MyHomePage> implements UnicoListener {
late UnicoCheckBuilder _unicoCheck;
@override
void onErrorUnico(UnicoError error) {}
@override
void onUserClosedCameraManually() {}
@override
void onSystemClosedCameraTimeoutSession() {}
@override
void onSystemChangedTypeCameraTimeoutFaceInference() {}
}
Todos os quatro métodos de listener acima devem ser criados no seu projeto (mesmo sem nenhuma lógica). Caso contrário, o projeto não compilará com sucesso.
Passo 2 — Implementar os listeners de documento
Adicione os callbacks de documento à sua classe de estado:
| Método | Descrição |
|---|---|
onSuccessDocument(ResultCamera resultCamera) | Captura bem-sucedida — retorna ResultCamera com base64 (prévia) e encrypted (JWT para a API) |
onErrorDocument(UnicoError error) | Captura falhou — retorna um UnicoError com código e descrição |
@override
void onSuccessDocument(ResultCamera resultCamera) { }
@override
void onErrorDocument(UnicoError error) { }
Passo 3 — Chamar openCameraDocument
O método openCameraDocument() é fornecido através do objeto gerado com uma instância da classe UnicoCheck. Ele recebe:
- Um arquivo JSON com as credenciais, gerado na etapa de configuração de credenciais;
- O tipo de documento a ser capturado (enum
DocumentType); - O listener configurado no Passo 2.
Exemplo usando a CNH aberta:
_unicoCheck.build().openCameraDocument(
jsonFileName: androidJsonFileName,
documentType: DocumentType.CNH,
listener: this,
);
Para o tratamento completo do resultado, consulte Recebendo o resultado.