> For the complete documentation index, see [llms.txt](https://docs.facephi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.facephi.com/productos/idv-suite/flujos-and-integraciones/configuracion-tecnica-del-cliente/sdk-mobile/android-sdk/componentes-modulos/captura-de-huellas.md).

# Captura de huellas

## Introducción <a href="#id-1-introduccion" id="id-1-introduccion"></a>

La captura de huellas se realiza mediante el **Phingers Component**.

Este componente se encarga de capturar las huellas dactilares del usuario (*fingerprints*) y extraer las plantillas biométricas asociadas. Sus principales procesos son:

* Gestión interna de cámara y permisos.
* Diferentes modos de extracción: mano completa (cuatro dedos sin pulgar), pulgar, o dedos individuales.
* Detección de vivacidad integrada.
* Asistencia guiada durante el proceso de captura.
* Generación de plantillas biométricas, imágenes y métricas de calidad.

***

## Dependencia <a href="#id-2-dependencia" id="id-2-dependencia"></a>

La dependencia específica del componente es:

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

***

## Controladores disponibles <a href="#id-3-controladores-disponibles" id="id-3-controladores-disponibles"></a>

| **Controlador**      | **Descripción**                             |
| -------------------- | ------------------------------------------- |
| PhingersTFController | Controlador principal de captura de huellas |

***

## Recepción de errores <a href="#id-61-recepcion-de-errores" id="id-61-recepcion-de-errores"></a>

* PHG\_ACTIVITY\_RESULT\_ERROR: El resultado de la actividad es incorrecto.
* PHG\_ACTIVITY\_RESULT\_MSG\_ERROR: El mensaje del resultado de la actividad es incorrecto.
* PHG\_APPLICATION\_CONTEXT\_ERROR: El contexto de aplicación es nulo.
* PHG\_CANCEL\_BY\_USER: El usuario ha cancelado el proceso.
* PHG\_CANCEL\_LAUNCH: Cancelación general del SDK.
* PHG\_COMPONENT\_LICENSE\_ERROR: La licencia del componente no es correcta.
* PHG\_EMPTY\_LICENSE: El string de licencia está vacío.
* PHG\_FETCH\_DATA\_ERROR: Error en la recogida del resultado.
* FLOW\_ERROR: Error en el proceso de flow.
* PHG\_INITIALIZATION\_ERROR: Error de inicialización.
* PHG\_INTERNAL\_ERROR: Error interno.
* PHG\_LOW\_QUALITY: Baja calidad de la imagen.
* PHG\_MANAGER\_NOT\_INITIALIZED: Los managers son nulos o no están inicializados.
* PHG\_NO\_DATA\_ERROR: No se han recibido datos de la captura.
* PHG\_OPERATION\_NOT\_CREATED: No hay ninguna operación en curso.
* PHG\_PERMISSION\_DENIED: El usuario ha rechazado los permisos.
* PHG\_AUTOFOCUS\_FAILURE: Fallo del autofocus.
* PHG\_CAMERA\_FAILURE: Fallo de la cámara.
* PHG\_CAPTURE\_FAILURE: Fallo en la captura.
* PHG\_CONFIGURATION\_FAILURE: Error de configuración.
* PHG\_FINGERPRINT\_CAPTURE\_FAILURE: Fallo en la captura de huellas.
* PHG\_FINGERPRINT\_TEMPLATE\_IO\_ERROR: Fallo IO de plantilla.
* PHG\_LICENSING\_FAILURE: Error de licencia.
* PHG\_LIVENESS\_FAILURE: Error en la prueba de vida.
* PHG\_NO\_FINGERS\_DETECTED: No se han detectado huellas.
* PHG\_UNIQUE\_USER\_ID\_NOT\_SPECIFIED: Usuario no especificado.
* PHG\_TIMEOUT: Timeout en el proceso.
* PHG\_FLOW\_VIDEO\_RECORDING\_ERROR: Error en la grabación de vídeo del flow.
* PHG\_FLOW\_TRACKING\_ERROR: Error de tracking en el flow.
* PHG\_TRACKING\_STEP\_ERROR: Error en el paso de tracking.

***

## Configuración avanzada <a href="#id-7-configuracion-avanzada" id="id-7-configuracion-avanzada"></a>

El controlador utiliza `PhingersConfigurationData` para ajustar el comportamiento de la captura. Además de los parámetros propios de selección de dedos, calidad, vivacidad o pantallas de ayuda, se pueden informar campos opcionales para activación y trazabilidad del widget:

* `licenseKey`: Clave de licencia trasladada al widget Phingers TF.
* `product`: Producto asociado a la activación o licenciamiento.
* `operationId`: Identificador de operación enviado al widget.

La configuración también permite activar una grabación local de la captura:

* `videoRecordingEnabled`: Activa la grabación local durante la captura. Por defecto `false`.
* `videoRecordingDirectoryPath`: Directorio de destino opcional para el MP4 generado.
* `videoRecordingFileName`: Nombre de fichero opcional.
* `videoRecordingQuality`: Calidad `LOW`, `MEDIUM` o `HIGH`. Por defecto `MEDIUM`.

## Recepción del resultado correcto - *data* <a href="#id-8-recepcion-del-resultado-correcto-data" id="id-8-recepcion-del-resultado-correcto-data"></a>

En caso de éxito, `data` contiene un `PhingersResult` con las huellas capturadas, imágenes *slap* cuando aplique y la media de vivacidad (`livenessScore`).

Cuando la grabación local está activada y el widget genera un fichero MP4, `PhingersResult.recording` puede devolver:

* `path`: Ruta completa del fichero generado.
* `fileName`: Nombre del fichero de vídeo.
* `mimeType`: Tipo MIME del fichero. Por defecto `video/mp4`.
* `sizeBytes`: Tamaño del fichero en bytes, cuando el widget lo informa.
* `durationMs`: Duración del vídeo en milisegundos, cuando el widget la informa.

***
