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

Captura de impressões digitais - Phingers

Introdução

A captura de impressão digital é realizada por meio do Componente Phingers.

Este componente é responsável por capturar as impressões digitais do usuário (impressões digitais) e extrair os templates biométricos associados. Seus principais processos são:

  • Gerenciamento interno da câmera e das permissões.

  • Diferentes modos de extração: mão completa (quatro dedos sem o polegar), polegar ou dedos individuais.

  • Detecção de vivacidade integrada.

  • Assistência guiada durante o processo de captura.

  • Geração de templates biométricos, imagens e métricas de qualidade.

Na seção Lançamento simplificado são descritos os passos necessários para a integração básica do SDK. Nesta página é adicionada a informação específica para o uso deste componente.


Dependência

A dependência específica do componente é:

implementation "com.facephi.androidsdk:phingers_tf_component:$version"

Controladores disponíveis

Controlador

Descrição

PhingersTFController

Controlador principal de captura de impressões digitais

FPhingersTFController

Controlador principal de captura de impressões digitais para integrações de flow

Lançamento simplificado

Uma vez iniciado o SDK e criada uma nova operação, o componente de captura de impressões digitais pode ser acionado usando seu controlador.

Inicialização da captura:


Configuração básica

Para lançar o componente, é necessário criar um objeto PhingersConfigurationData, que define a configuração do processo de captura.

A configuração básica necessária é a seguinte:

Orientação da captura

Define a mão a ser capturada:

  • CaptureOrientation.LEFT

  • CaptureOrientation.RIGHT

Filtros de dedos

Permite definir quais dedos são capturados durante o processo:

  • FingerFilter.SLAP

  • FingerFilter.ALL_4_FINGERS_ONE_BY_ONE

  • FingerFilter.ALL_5_FINGERS_ONE_BY_ONE

  • FingerFilter.INDEX_FINGER

  • FingerFilter.MIDDLE_FINGER

  • FingerFilter.RING_FINGER

  • FingerFilter.LITTLE_FINGER

  • FingerFilter.THUMB_FINGER

Opções de TemplateType:

  • NIST_TEMPLATE

  • ISO_TEMPLATE

  • NIST_T5_TEMPLATE


Recebimento do resultado

O lançamento do componente retorna um resultado no formato SdkResult, que pode corresponder a uma execução bem-sucedida ou a um erro.


Recebimento de erros

Os erros são retornados como um objeto PhingersError.

Lista de erros

  • PHG_ACTIVITY_RESULT_ERROR: O resultado da atividade está incorreto.

  • PHG_ACTIVITY_RESULT_MSG_ERROR: A mensagem do resultado da atividade está incorreta.

  • PHG_APPLICATION_CONTEXT_ERROR: O contexto da aplicação é nulo.

  • PHG_CANCEL_BY_USER: O usuário cancelou o processo.

  • PHG_CANCEL_LAUNCH: Cancelamento geral do SDK.

  • PHG_COMPONENT_LICENSE_ERROR: A licença do componente não está correta.

  • PHG_EMPTY_LICENSE: A string de licença está vazia.

  • PHG_FETCH_DATA_ERROR: Erro na coleta do resultado.

  • FLOW_ERROR: Erro no processo de flow.

  • PHG_INITIALIZATION_ERROR: Erro de inicialização.

  • PHG_INTERNAL_ERROR: Erro interno.

  • PHG_LOW_QUALITY: Baixa qualidade da imagem.

  • PHG_MANAGER_NOT_INITIALIZED: Os managers são nulos ou não estão inicializados.

  • PHG_NO_DATA_ERROR: Nenhum dado da captura foi recebido.

  • PHG_OPERATION_NOT_CREATED: Não há nenhuma operação em andamento.

  • PHG_PERMISSION_DENIED: O usuário recusou as permissões.

  • PHG_AUTOFOCUS_FAILURE: Falha no autofocus.

  • PHG_CAMERA_FAILURE: Falha na câmera.

  • PHG_CAPTURE_FAILURE: Falha na captura.

  • PHG_CONFIGURATION_FAILURE: Erro de configuração.

  • PHG_FINGERPRINT_CAPTURE_FAILURE: Falha na captura de impressões digitais.

  • PHG_FINGERPRINT_TEMPLATE_IO_ERROR: Falha de IO do template.

  • PHG_LICENSING_FAILURE: Erro de licença.

  • PHG_LIVENESS_FAILURE: Erro no teste de vida.

  • PHG_NO_FINGERS_DETECTED: Nenhuma impressão digital foi detectada.

  • PHG_UNIQUE_USER_ID_NOT_SPECIFIED: Usuário não especificado.

  • PHG_TIMEOUT: Timeout no processo.

  • PHG_FLOW_VIDEO_RECORDING_ERROR: Erro na gravação de vídeo do flow.

  • PHG_FLOW_TRACKING_ERROR: Erro de tracking no flow.

  • PHG_TRACKING_STEP_ERROR: Erro na etapa de tracking.


Recepção do resultado correto - data

Em caso de sucesso, o campo data contém um objeto PhingersResult.

As imagens são retornadas como SdkImage. É possível obter o Bitmap por meio de image.bitmap. Para converter uma imagem em Base64, pode-se utilizar:

Campos retornados

  • fingers: Lista de FingerResponse (uma entrada por dedo capturado)

  • slapImages: Lista de SlapResponse (capturas slap quando aplicável)

  • livenessScore: Média da pontuação de vivacidade (nullable)

  • recording: Metadados da gravação local opcional quando videoRecordingEnabled=true e o widget gera um arquivo MP4. Pode ser null.

FingerResponse

  • position: Índice de posição do dedo

  • wsq: Imagem WSQ (ByteArray)

  • displayImage: Imagem de exibição (ByteArray, PNG)

  • minutiaesNumber: Número de minutiae detectadas

  • quality: Pontuação de qualidade

  • nistQuality: Pontuação de qualidade NIST

  • nist2Quality: Pontuação de qualidade NIST2

  • template: Template de impressão digital (ByteArray)

  • proprietaryQuality: Qualidade proprietária do fornecedor

  • templateType: Identificador do tipo de template

  • imageWidth: Largura da imagem em pixels

  • imageHeight: Altura da imagem em pixels

SlapResponse

  • position: Índice da posição do slap

  • image: Imagem slap (ByteArray)

VideoRecordingResult

  • path: Caminho completo do arquivo de vídeo gerado.

  • fileName: Nome do arquivo de vídeo.

  • mimeType: Tipo MIME do arquivo. Por padrão video/mp4.

  • sizeBytes: Tamanho do arquivo em bytes, quando o widget informa.

  • durationMs: Duração do vídeo em milissegundos, quando o widget informa.


Informações avançadas

Configuração avançada do componente

O objeto PhingersConfigurationData permite personalizar o comportamento do componente.

Parâmetros disponíveis

reticleOrientation

Define o modo de detecção de impressões digitais e indica quais dedos serão detectados durante o processo. Os valores permitidos são:

  • LEFT: A captura é ativada da mão esquerda.

  • RIGHT: A captura é ativada da mão direita.

fingerFilter

Filtro para escolher a mão inteira ou um dedo específico: SLAP, INDEX_FINGER, MIDDLE_FINGER, RING_FINGER, LITTLE_FINGER, THUMB_FINGER.

templateType

Define o formato do template a ser gerado (variantes NIST/ISO).

useLiveness

Ativa ou desativa o detector de vivacidade durante o processo de captura de impressões digitais. Por padrão ele está em true.

extractionTimeout

Define um tempo de extração.

showPreviousTip

Mostra uma tela anterior ao lançamento da captura com informações sobre o processo a ser realizado e um botão para o lançamento.

showTutorial

Indica se o componente ativa a tela de tutorial. Nessa visualização é explicado de forma intuitiva como a captura é realizada.

showDiagnostic

Exibir telas de diagnóstico ao final do processo.

threshold

O parâmetro configura um captureQualityThreshold, para definir um threshold de qualidade para realizar a captura. O SDK limita esse valor ao intervalo 0.0-1.0.

showEllipses

Mostra as elipses durante a captura.

cropWidth

Indica uma largura para realizar um recorte da captura.

cropHeight

Indica uma altura para realizar um recorte da captura.

vibrationEnabled

Ativa a vibração. Por padrão true.

enableFlash

Ativa ou desativa o flash da câmera durante o processo de captura de impressões digitais. Por padrão ele está em true.

reticle

Identificador opcional do retículo. Por padrão "R_S".

showPreviousFingerSelector

Mostra o seletor de dedos antes da captura.

fingerSelectorHandOrientation

Define qual(is) mão(s) são exibidas no seletor (LEFT, RIGHT, BOTH).

fingerSelectorOptions

Define a lista de filtros que são exibidos no seletor. Se estiver vazia, o SDK usa: ALL_4_FINGERS_ONE_BY_ONE, SLAP, INDEX_FINGER.

licenseKey

Chave de licença opcional que é passada ao widget Phingers TF quando são usadas ativação ou licenciamento específico.

product

Produto opcional associado à ativação ou ao licenciamento do widget.

operationId

Identificador opcional de operação que é enviado ao widget para rastreabilidade e associação da captura.

videoRecordingEnabled

Ativa a gravação local opcional durante a captura de impressões digitais. Por padrão false.

videoRecordingDirectoryPath

Diretório de destino opcional para o arquivo de vídeo gerado.

videoRecordingFileName

Nome de arquivo opcional para a gravação gerada.

videoRecordingQuality

Qualidade da gravação local. Os valores permitidos são LOW, MEDIUM e HIGH. Por padrão MEDIUM.


Personalização do componente

Além das alterações que podem ser feitas no nível do SDK (as quais são explicadas no documento de Personalização do SDK), este componente em específico permite a modificação de sua interface.

Textos

Os textos podem ser personalizados adicionando um arquivo XML de recursos na aplicação cliente e sobrescrevendo os valores padrão.

Animações

As animações do componente são Lottie (JSON).

Para substituí-las, adicione os arquivos com o mesmo nome na pasta res/raw/ da aplicação:

Se não forem incluídas animações personalizadas, as animações padrão serão usadas.


Atualizado