# Enum BiometricType

java.lang.Object
java.lang.Enum<BiometricType>
com.codename1.security.BiometricType

All Implemented Interfaces:
  `Comparable<BiometricType>`

public enum BiometricType extends Enum<BiometricType>

Enumerates the biometric authentication modalities that may be available on a device. Returned from `Biometrics.getAvailableBiometrics()`.

The set returned at runtime depends on the platform and the user's enrolled credentials -- e.g. an iPhone with Face ID enrolled returns `[FACE]`; an Android Pixel with a fingerprint and a face enrolled returns `[FINGERPRINT, FACE]`. Use the list to drive UI affordances (icon, prompt copy) but never to gate the actual `authenticate()` call: always rely on `Biometrics.canAuthenticate()` for that decision.

- ## Enum Constant Summary

  Enum Constants
  Enum Constant
  Description
  `FACE`
  Face recognition (iOS Face ID, Android `FEATURE_FACE`).
  `FINGERPRINT`
  Fingerprint sensor (iOS Touch ID, Android `FEATURE_FINGERPRINT`).
  `IRIS`
  Iris recognition (Android `FEATURE_IRIS`).
  `STRONG`
  Android class-3 / "strong" authenticator tier.
  `WEAK`
  Android class-2 / "weak" authenticator tier.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static BiometricType`
  `valueOf(String name)`
  Returns the enum constant of this type with the specified name.
  `static BiometricType[]`
  `values()`
  Returns an array containing the constants of this enum type, in the order they are declared.

  ### Methods inherited from class Enum

  `clone, compareTo, equals, getDeclaringClass, getEnumValues, hashCode, name, ordinal, setEnumValues, toString, valueOf`

  ### Methods inherited from class Object

  `getClass, notify, notifyAll, wait, wait, wait`

- ## Enum Constant Details

  - ### FINGERPRINT

    public static final BiometricType FINGERPRINT
    Fingerprint sensor (iOS Touch ID, Android `FEATURE_FINGERPRINT`). Populated on both platforms when the device has fingerprint hardware AND at least one fingerprint is enrolled.

  - ### FACE

    public static final BiometricType FACE
    Face recognition (iOS Face ID, Android `FEATURE_FACE`). Populated on both platforms; on Android 9-10 the OS does not expose face enrolment via the BiometricPrompt API even on devices that have it, so this value only appears on Android API 29+.

  - ### IRIS

    public static final BiometricType IRIS
    Iris recognition (Android `FEATURE_IRIS`). Used by a handful of Samsung devices and is not exposed on iOS. Practically rare in 2026 -- code that targets it should still treat the absence as the expected case.

  - ### STRONG

    public static final BiometricType STRONG

    Android class-3 / "strong" authenticator tier. Indicates the device's available biometric meets Android's stricter cryptographic requirements (false-acceptance rate < 1/100,000) and can therefore gate Keystore-backed keys created with `setUserAuthenticationRequired`

    - a strong-only authenticator policy. Populated only on Android API 30+; iOS has no analogous concept and this value is never returned there. Combine with `AuthenticationOptions.setSensitiveTransaction(boolean)` to require this tier when guarding sensitive operations.

  - ### WEAK

    public static final BiometricType WEAK
    Android class-2 / "weak" authenticator tier. Indicates a biometric whose false-acceptance rate is between 1/10,000 and 1/100,000 (typically older fingerprint sensors). It can authenticate the user for UI flows but is NOT permitted to unlock Keystore-bound keys, so weak-only devices cannot use `SecureStorage`. Populated only on Android API 30+; not returned on iOS.

- ## Method Details

  - ### values

    public static BiometricType[] values()
    Returns an array containing the constants of this enum type, in the order they are declared.
    Returns:
      an array containing the constants of this enum type, in the order they are declared

  - ### valueOf

    public static BiometricType valueOf(String name)
    Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
    Parameters:
      `name` - the name of the enum constant to be returned.
    Returns:
      the enum constant with the specified name
    Throws:
      `IllegalArgumentException` - if this enum type has no constant with the specified name
      `NullPointerException` - if the argument is null