> 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/docs.facephi-en/sdks/sdk-mobile/framework-plugins/flutter/componentes/phingers.md).

# Fingerprint Capture - Phingers

Its main features are as follows:

* Two operating modes: extraction of the four fingers of the hand (except the thumb), or extraction of only the thumb.
* Internal camera management.
* Permission management.
* Built-in liveness detection.
* Assistant in fingerprint capture processes.
* Generation of templates with fingerprint characteristics, images, and scores.

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

### Flutter:

```swift
dependencies:
  fphi_sdkmobile_phingers:
    hosted:
      name: fphi_sdkmobile_phingers
      url: https://facephicorp.jfrog.io/artifactory/api/pub/pub-pro-fphi/
    version: ^<Version>
```

### Android - Gradle:

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

### iOS - CocoaPods:

```swift
s.dependency 'FPHISDKPhingersTFComponent', '~> $version'
```

## Method startPhingersComponent <a href="#id-4-lanzamiento-simplificado" id="id-4-lanzamiento-simplificado"></a>

Once the SDK has been started and a new operation has been created, the component can be launched. Any of its controllers can be used to execute its functionality.

Launching the fingerprint reader:

```dart
Future<Map> startPhingersComponent(
  { required PhingersConfiguration widgetConfigurationJSON }
)
{
  return FphiSdkmobilePhingersPlatform.instance.startPhingersComponent(widgetConfigurationJSON: widgetConfigurationJSON);
}
```

## Basic configuration <a href="#id-5-configuracion-basica" id="id-5-configuracion-basica"></a>

To launch the current component, an object ***PhingersConfiguration*** must be created, which will be the configuration of the component controller.

The basic configuration needed for this is as follows:

```dart
class PhingersConfiguration
{
  PhingersReticleOrientation mReticleOrientation;
  FingersFilter mFingersFilter;
  bool mShowEllipses;
  bool mUseLiveness;
  bool mShowTutorial;
  bool mVibration;
  int mExtractionTimeout;
  bool? mShowDiagnostic;
  double? mThreshold;
  bool? mShowPreviousTip;
}
```

{% content-ref url="/pages/2051261c1066d5415a2d683389692096913b6ef1" %}
[Phingers Configuration](/docs.facephi-en/sdks/sdk-mobile/framework-plugins/extras/phingers/phingers-configuracion.md)
{% endcontent-ref %}

### Advanced component configuration

Below are all the fields that are part of this class.

## Result reception <a href="#id-6-recepcion-del-resultado" id="id-6-recepcion-del-resultado"></a>

The launch will return the information in the format ***PhingersResult***. It being possible to distinguish between a successful launch and an unsuccessful one:

```dart
class PhingersResult
{
  final SdkFinishStatus finishStatus;
  final String finishStatusDescription;
  final String errorDiagnostic;
  final String? errorMessage;
  final dynamic fingers;
  final dynamic slapImages;
}
```

Below are all the fields that are part of this class.

{% content-ref url="/pages/51a03f45cc58b9f386b33d31ac2cbe04db1bb118" %}
[Phingers Result](/docs.facephi-en/sdks/sdk-mobile/framework-plugins/extras/phingers/phingers-resultado.md)
{% endcontent-ref %}
