For the complete documentation index, see llms.txt. This page is also available as Markdown.

Personalização

Saiba como personalizar nosso SDK e deixá-lo com a aparência do seu app.

Criação de layout personalizado

Para criar um novo layout, recomendamos que você use o modelos padrão dos SDKs e faça as alterações desejadas.

Passo a passo

  1. Declare a dependência de CameraView no arquivo gradle no nível do app.

// Biblioteca principal do CameraX usando a implementação camera2
implementation "androidx.camera:camera-view:1.3.4"

2. Crie um arquivo de layout no diretório de layout do seu projeto usando o modelo CAF.

3. Crie suas views e parametrize a visibilidade e os métodos de chamada do ViewModel de cada SDK correspondente de acordo com as tabelas a seguir. Exemplo:

<layout>
...
    <androidx.camera.view.PreviewView
        android:id="@id/cameraImageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:visibility="@{viewModel.cameraVisibility ? View.VISIBLE : View.GONE}"
    />
    ...
</layout>

Variáveis e métodos usados no layout

Todos os métodos e variáveis descritos abaixo são acessados pela classe SDKViewModel.

Métodos

Método
Descrição
Retorno
SDK

takePhoto()

Responsável por iniciar a captura de imagem no modo MANUAL

Void

DocumentDetector, PassiveFaceLiveness

close()

Responsável por fechar o SDK.

Void

DocumentDetector, PassiveFaceLiveness, FaceAuthenticator

switchCamera()

Responsável por inverter a câmera.

Void

DocumentDetector v7.x ou inferior, PassiveFaceLiveness, FaceAuthenticator

Variáveis de estado

O layout usado no SDK é composto por várias variáveis de estado; essas variáveis são responsáveis por identificar o estado em que o SDK se encontra a cada momento de sua execução:

Variável
Descrição
Tipo
SDK

loadingStatus

Indica o estado de "carregando"

Booleano

DocumentDetector, PassiveFaceLiveness, FaceAuthenticator

readyToCaptureStatus

Indica que o SDK está pronto para capturar, após realizar todas as validações de sensores, enquadramento, rosto etc.

Booleano

DocumentDetector, PassiveFaceLiveness, FaceAuthenticator

stepDoneSuccessfullyStatus

Indica que a etapa de captura terminou com sucesso

Booleano

DocumentDetector, PassiveFaceLiveness, FaceAuthenticator

validationFailureStatus

Indica se há alguma falha nas verificações de sensor, qualidade, enquadramento, distância do rosto etc.

Booleano

DocumentDetector, PassiveFaceLiveness, FaceAuthenticator

validationFailureId

Indica que tipo de erro ocorreu. Veja a tabela abaixo

ValidationFailure

DocumentDetector, PassiveFaceLiveness, FaceAuthenticator

captureModeStatus

Indica o modo de captura ativado. Pode variar entre AUTOMATIC e MANUAL

CaptureMode

DocumentDetector, PassiveFaceLiveness

maskStatus

Indica o status da máscara. Pode variar de NORMAL, SUCCESS a ERROR

Mask

DocumentDetector v7.x ou inferior, PassiveFaceLiveness, FaceAuthenticator

maskLayout

Responsável por retornar o ID do recurso Drawable usado para definir a máscara.

Inteiro

DocumentDetector v7.x ou inferior, PassiveFaceLiveness, FaceAuthenticator

previousStepName

Nome da etapa anterior que foi executada. Caso contrário, o valor será nulo. Exemplo: verso do documento de identidade.

String

DocumentDetector v7.x ou inferior

Variáveis de visibilidade

Variável
Descrição
Tipo
SDK

popUpVisibility

Indica a visibilidade do pop-up de inicialização da etapa

Booleano

DocumentDetector

manualCaptureButtonVisibility

Indica a visibilidade do botão de captura manual

Booleano

DocumentDetector, PassiveFaceLiveness

switchCameraButtonVisibility

Indica a visibilidade do botão de inverter a câmera

Booleano

DocumentDetector v7.x ou inferior, PassiveFaceLiveness, FaceAuthenticator

statusVisibility

Responsável pela visibilidade da mensagem de status do SDK.

Booleano

DocumentDetector v7.x ou inferior, PassiveFaceLiveness, FaceAuthenticator

statusMessage

Retorna a mensagem de status. Personalize com MessageSettings

String

DocumentDetector v7.x ou inferior, PassiveFaceLiveness, FaceAuthenticator

feedbackStatusMessage

Retorna a mensagem de status. Personalize com MessageSettings

String

DocumentDetector

cameraVisibility

Responsável pela visibilidade da câmera.

Booleano

DocumentDetector, PassiveFaceLiveness, FaceAuthenticator

maskVisibility

Indica a visibilidade da máscara.

Booleano

DocumentDetector v7.x ou inferior, PassiveFaceLiveness, FaceAuthenticator

switchButtonVisibility

Responsável pela visibilidade do botão de girar a câmera.

Esta variável foi descontinuada; recomendamos usar a variável switchCameraButtonVisibility.

Booleano

DocumentDetector v7.x ou inferior, PassiveFaceLiveness, FaceAuthenticator

serverRequesting

Responsável pela visibilidade do carregamento exibido pelo SDK.

Esta variável foi descontinuada; recomendamos usar a variável loadingStatus.

Booleano

DocumentDetector v7.x ou inferior, PassiveFaceLiveness, FaceAuthenticator

buttonVisibility

Define a visibilidade do botão de captura manual.

Esta variável foi descontinuada; use manualCaptureButtonVisibility.

Booleano

DocumentDetector v7.x ou inferior, PassiveFaceLiveness

ValidationFailure

Cada SDK contém vários erros de validação que podem ocorrer durante a execução. A maioria deles gera o estado de "máscara de erro" e impede que a captura seja realizada:

Erro
Descrição
SDK

SENSOR_LUMINOSITY_FAILURE

Sensor de luminosidade. O ambiente está muito escuro

DocumentDetector, PassiveFaceLiveness

SENSOR_ORIENTATION_FAILURE

Sensor de orientação. O dispositivo não está na posição correta

DocumentDetector, PassiveFaceLiveness

SENSOR_STABILITY_FAILURE

Sensor de estabilidade. O dispositivo está em movimento

DocumentDetector, PassiveFaceLiveness, FaceAuthenticator

FRAMING_FAILURE

Enquadramento de documento ou rosto

DocumentDetector, PassiveFaceLiveness, FaceAuthenticator

EYES_CLOSED_FAILURE

Foi identificado um rosto com os olhos fechados

PassiveFaceLiveness, FaceAuthenticator

FACE_NOT_FOUND

Nenhum rosto foi encontrado

PassiveFaceLiveness, FaceAuthenticator

FACE_TOO_FAR

Rosto muito distante.

PassiveFaceLiveness, FaceAuthenticator

FACE_TOO_CLOSE

Rosto muito próximo.

PassiveFaceLiveness, FaceAuthenticator

ANGULATION_X_FAILURE

Ângulo incorreto do rosto no eixo X.

PassiveFaceLiveness

ANGULATION_Y_FAILURE

Ângulo incorreto do rosto no eixo Y.

PassiveFaceLiveness

ANGULATION_Z_FAILURE

Ângulo incorreto do rosto no eixo Z.

PassiveFaceLiveness

MULTIPLE_FACES_FAILURE

Vários rostos detectados.

PassiveFaceLiveness, FaceAuthenticator

QUALITY_FAILURE

A qualidade da captura do documento é muito baixa.

DocumentDetector

LIVENESS_FAILURE

Erro na prova de vida. É uma provável tentativa de fraude

PassiveFaceLiveness, FaceAuthenticator

TYPIFICATION_FAILURE

O tipo do documento ou o lado do documento não era esperado.

DocumentDetector

PASSPORT_COUNTRY_CODE_FAILURE

O código do país do passaporte (ou código emissor) não é permitido.

DocumentDetector

Usando layout no Builder

Após criar os arquivos desejados, crie um objeto do tipo DocumentDetector. Esse objeto serve para configurar todas as suas regras de negócio para o SDK, incluindo os atributos de personalização da interface:

Método do Builder

Parâmetro
Obrigatório
Compatibilidade

.setLayout(@LayoutRes Integer layoutId)

Substitui o layout padrão do SDK. Crie um arquivo na pasta de layout do seu projeto, copie o modelo de layout padrão correspondente ao SDK que você está integrando e faça as alterações desejadas.

Não. Aqui é o padrão para cada SDK.

Versões mais recentes

.setStyle(@StyleRes int styleResourceId)

Substitui o estilo padrão do SDK. No arquivo styles.xml do seu projeto, copie o modelo padrão e edite-o.

Não. Aqui é o padrão para cada SDK.

Versões mais recentes

.setMask(@DrawableRes Integer greenMask, @DrawableRes Integer whiteMask, @DrawableRes Integer redMask)

Substitui as máscaras para captura de um documento ou rosto: SUCCESS, NORMAL e FAIL, nessa ordem. Se você usar essa opção, utilize máscaras com a mesma área de detecção do documento e do rosto, pois essa região é muito importante para o algoritmo de captura.

Não. Aqui é o padrão para cada SDK.

DocumentDetector v7.x ou inferior

.setMask(MaskType type)

Define qual grupo de máscaras predefinidas no produto será usado pelo SDK:

  • MaskType.DEFAULT, com o padrão pontilhado no formato do documento ou rosto;

  • MaskType.DETAILED, que exibe uma ilustração do documento solicitado - CNH ou RG - junto com a máscara pontilhada (apenas em DocumentDetector);

  • MaskType.NONE, que remove totalmente a máscara.

Não. As máscaras padrão são usadas.

DocumentDetector v7.x ou inferior

Usando os métodos

Diferentes usos do método .setMask()

Criação de estilo personalizado

Para criar um novo estilo, recomendamos que você use o mesmo modelo que usamos; assim, será mais fácil fazer personalizações.

Personalização das máscaras

Para personalizar as máscaras, primeiro crie um recurso drawable no seu projeto. Você pode personalizar whiteMask, greenMask e redMask da forma que quiser. Nós fornecemos máscaras genéricas de documento e rosto que você pode usar como referência. Veja a setMask definição do método e exemplos em DocumentDetector.Builder. E veja também exemplos de integração de máscara personalizada.

Modelos padrão

Activity (setLayout)

Estilos (setStyle)

Máscara (setMask)

Activity (setLayout)

Estilo (setStyle)

Activity (setLayout)

Estilo (setStyle)

Máscara (setMask)

Activity (setLayout)

Estilo (setStyle)

Máscara (setMask)

Atualizado