# BiometricManager.Authenticators

Artifact: [androidx.biometric:biometric](https://developer.android.com/jetpack/androidx/releases/biometric) [View Source](https://cs.android.com/search?q=file:androidx/biometric/BiometricManager.java+class:androidx.biometric.BiometricManager.Authenticators) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/biometric#1.1.0)

*** ** * ** ***


```
public interface BiometricManager.Authenticators
```

<br />

*** ** * ** ***

Types of authenticators, defined at a level of granularity supported by `https://developer.android.com/reference/androidx/biometric/BiometricManager` and `https://developer.android.com/reference/androidx/biometric/BiometricPrompt`.

Types may combined via bitwise OR into a single integer representing multiple authenticators (e.g. `DEVICE_CREDENTIAL | BIOMETRIC_WEAK`).

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/biometric/BiometricManager#canAuthenticate(int)` |   |
| `https://developer.android.com/reference/androidx/biometric/BiometricPrompt.PromptInfo.Builder#setAllowedAuthenticators(int)` |   |

## Summary

| ### Constants |
|---|---|
| `default static final int` | `https://developer.android.com/reference/androidx/biometric/BiometricManager.Authenticators#BIOMETRIC_STRONG() = 15` Any biometric (e.g. fingerprint, iris, or face) on the device that meets or exceeds the requirements for **Class 3** (formerly **Strong**), as defined by the Android CDD. |
| `default static final int` | `https://developer.android.com/reference/androidx/biometric/BiometricManager.Authenticators#BIOMETRIC_WEAK() = 255` Any biometric (e.g. fingerprint, iris, or face) on the device that meets or exceeds the requirements for **Class 2** (formerly **Weak**), as defined by the Android CDD. |
| `default static final int` | `https://developer.android.com/reference/androidx/biometric/BiometricManager.Authenticators#DEVICE_CREDENTIAL() = 32768` The non-biometric credential used to secure the device (i.e. PIN, pattern, or password). |
| `default static final int` | `@https://developer.android.com/reference/androidx/annotation/RequiresPermission(value = "android.permission.SET_BIOMETRIC_DIALOG_ADVANCED") https://developer.android.com/reference/androidx/biometric/BiometricManager.Authenticators#IDENTITY_CHECK() = 65536` The bit is used to request for Identity Check. |

## Constants

### BIOMETRIC_STRONG

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/biometric#1.1.0)

```
default static final int BIOMETRIC_STRONG = 15
```

Any biometric (e.g. fingerprint, iris, or face) on the device that meets or exceeds the requirements for **Class 3** (formerly **Strong**), as defined by the Android CDD.

### BIOMETRIC_WEAK

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/biometric#1.1.0)

```
default static final int BIOMETRIC_WEAK = 255
```

Any biometric (e.g. fingerprint, iris, or face) on the device that meets or exceeds the requirements for **Class 2** (formerly **Weak**), as defined by the Android CDD.

Note that this is a superset of `https://developer.android.com/reference/androidx/biometric/BiometricManager.Authenticators#BIOMETRIC_STRONG()` and is defined such that `BIOMETRIC_STRONG | BIOMETRIC_WEAK == BIOMETRIC_WEAK`.

### DEVICE_CREDENTIAL

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/biometric#1.1.0)

```
default static final int DEVICE_CREDENTIAL = 32768
```

The non-biometric credential used to secure the device (i.e. PIN, pattern, or password). This should typically only be used in combination with a biometric auth type, such as `https://developer.android.com/reference/androidx/biometric/BiometricManager.Authenticators#BIOMETRIC_WEAK()`.

### IDENTITY_CHECK

Added in [1.4.0-beta01](https://developer.android.com/jetpack/androidx/releases/biometric#1.4.0-beta01)

```
@RequiresPermission(value = "android.permission.SET_BIOMETRIC_DIALOG_ADVANCED")
default static final int IDENTITY_CHECK = 65536
```

The bit is used to request for Identity Check. Identity Check is a feature added in API 36, which requires class 3 biometric authentication to access sensitive surfaces when the device is outside trusted places.

The requirements to trigger Identity Check are as follows:

1. User must have enabled the toggle for Identity Check in settings
2. User must have enrollments for at least one BIOMETRIC_STRONG sensor
3. The device is determined to be in a high risk environment, for example if it is outside of the user's trusted locations or fails to meet similar conditions
4. The Identity Check requirements bit must be true

If all the above conditions are satisfied, only BIOMETRIC_STRONG sensors will be eligible for authentication, and device credential fallback will be dropped.

For backward compatibility: If identity check isn't supported on the current API level:

- a. if there are other allowed authenticators bits, identity check will be ignored and use the others for authentication;
- b. if IDENTITY_CHECK is the only allowed authenticators bit, identity check will be ignored and the default authenticator will be used.