Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Nested Classes](https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#nestedclasses) \| [Constants](https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#constants) \| [Methods](https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#inhmethods)

# BiometricManager

*** ** * ** ***


`
public


class
BiometricManager
`


`

extends https://developer.android.com/reference/java/lang/Object


`

`


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.hardware.biometrics.BiometricManager |

<br />

*** ** * ** ***

A class that contains biometric utilities. For authentication, see `https://developer.android.com/reference/android/hardware/biometrics/BiometricPrompt`.


Restricted for SDK Runtime environment in API level 34.

## Summary

| ### Nested classes ||
|---|---|
| ` interface` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators` Types of authenticators, defined at a level of granularity supported by `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager` and `https://developer.android.com/reference/android/hardware/biometrics/BiometricPrompt`. |
| ` class` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Strings` Provides localized strings for an application that uses `https://developer.android.com/reference/android/hardware/biometrics/BiometricPrompt` to authenticate the user. |

| ### Constants ||
|---|---|
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#AUTHENTICATION_PURPOSE_LOGIN` Authentication purpose representing a login use case. |
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#AUTHENTICATION_PURPOSE_PAYMENT` Authentication purpose representing a payment use case. |
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#AUTHENTICATION_PURPOSE_UNKNOWN` Unknown authentication purpose. |
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_HW_UNAVAILABLE` The hardware is unavailable. |
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_IDENTITY_CHECK_NOT_ACTIVE` Identity Check is currently not active. |
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_NONE_ENROLLED` The user does not have any biometrics enrolled. |
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_NOT_ENABLED_FOR_APPS` Biometrics is not allowed to verify the user in apps. |
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_NO_HARDWARE` There is no biometric hardware. |
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_SECURITY_UPDATE_REQUIRED` A security vulnerability has been discovered and the sensor is unavailable until a security update has addressed this issue. |
| `long` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_NO_AUTHENTICATION` Returned from `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#getLastAuthenticationTime(int)` when no matching successful authentication has been performed since boot. |
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_SUCCESS` No error detected. |
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#ICON_TYPE_ACCOUNT` An icon representing a user account. |
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#ICON_TYPE_GENERIC` A generic icon. |
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#ICON_TYPE_MESSAGE` An icon representing a message or chat option, such as to contact support or an administrator. |
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#ICON_TYPE_PASSWORD` An icon representing a password. |
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#ICON_TYPE_QR_CODE` An icon representing a QR code. |
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#ICON_TYPE_RESET` An icon representing a password reset. |
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#ICON_TYPE_SETTING` An icon representing settings (a gear). |
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#ICON_TYPE_SUPERVISED` An icon representing a supervised account. |

| ### Public methods ||
|---|---|
| ` int` | ` https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#canAuthenticate()() ` *This method was deprecated in API level 30. See `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#canAuthenticate(int)`.* |
| ` int` | ` https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#canAuthenticate(int)(int authenticators) ` Determine if any of the provided authenticators can be used. |
| ` https://developer.android.com/reference/java/util/Map<https://developer.android.com/reference/java/lang/Integer, https://developer.android.com/reference/java/lang/Integer>` | ` https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#getBiometricSensorStrengths()() ` Returns a map of biometric modalities to their sensor security strengths. |
| ` long` | ` https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#getLastAuthenticationTime(int)(int authenticators) ` Gets the last time the user successfully authenticated using one of the given authenticators. |
| ` https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Strings` | ` https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#getStrings(int)(int authenticators) ` Produces an instance of the `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Strings` class, which provides localized strings for an application, given a set of allowed authenticator types. |

### Inherited methods

From class `

https://developer.android.com/reference/java/lang/Object

` `


https://developer.android.com/reference/java/lang/Object` `
https://developer.android.com/reference/java/lang/Object#clone()()
`

Creates and returns a copy of this object.


`


boolean` `
https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj)
`

Indicates whether some other object is "equal to" this one.


`


void` `
https://developer.android.com/reference/java/lang/Object#finalize()()
`

Called by the garbage collector on an object when garbage collection
determines that there are no more references to the object.


`


final

https://developer.android.com/reference/java/lang/Class<?>` `
https://developer.android.com/reference/java/lang/Object#getClass()()
`

Returns the runtime class of this `Object`.


`


int` `
https://developer.android.com/reference/java/lang/Object#hashCode()()
`

Returns a hash code value for the object.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#notify()()
`

Wakes up a single thread that is waiting on this object's
monitor.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#notifyAll()()
`

Wakes up all threads that are waiting on this object's monitor.


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/java/lang/Object#toString()()
`

Returns a string representation of the object.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos)
`

Causes the current thread to wait until it is awakened, typically
by being *notified* or *interrupted*, or until a
certain amount of real time has elapsed.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis)
`

Causes the current thread to wait until it is awakened, typically
by being *notified* or *interrupted*, or until a
certain amount of real time has elapsed.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#wait()()
`

Causes the current thread to wait until it is awakened, typically
by being *notified* or *interrupted*.


## Constants

### AUTHENTICATION_PURPOSE_LOGIN

Added in [version 37.2](https://developer.android.com/topic/libraries/support-library/revisions)

```
public static final int AUTHENTICATION_PURPOSE_LOGIN
```

Authentication purpose representing a login use case.

<br />

Constant Value:

2
(0x00000002)


### AUTHENTICATION_PURPOSE_PAYMENT

Added in [version 37.2](https://developer.android.com/topic/libraries/support-library/revisions)

```
public static final int AUTHENTICATION_PURPOSE_PAYMENT
```

Authentication purpose representing a payment use case.

<br />

Constant Value:

1
(0x00000001)


### AUTHENTICATION_PURPOSE_UNKNOWN

Added in [version 37.2](https://developer.android.com/topic/libraries/support-library/revisions)

```
public static final int AUTHENTICATION_PURPOSE_UNKNOWN
```

Unknown authentication purpose.

<br />

Constant Value:

0
(0x00000000)


### BIOMETRIC_ERROR_HW_UNAVAILABLE

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int BIOMETRIC_ERROR_HW_UNAVAILABLE
```

The hardware is unavailable. Try again later.

<br />

Constant Value:

1
(0x00000001)


### BIOMETRIC_ERROR_IDENTITY_CHECK_NOT_ACTIVE

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int BIOMETRIC_ERROR_IDENTITY_CHECK_NOT_ACTIVE
```

Identity Check is currently not active.

This device either doesn't have this feature enabled, or it's not considered in a
high-risk environment that requires extra security measures for accessing sensitive data.

<br />

Constant Value:

20
(0x00000014)


### BIOMETRIC_ERROR_NONE_ENROLLED

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int BIOMETRIC_ERROR_NONE_ENROLLED
```

The user does not have any biometrics enrolled.

<br />

Constant Value:

11
(0x0000000b)


### BIOMETRIC_ERROR_NOT_ENABLED_FOR_APPS

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int BIOMETRIC_ERROR_NOT_ENABLED_FOR_APPS
```

Biometrics is not allowed to verify the user in apps.

<br />

Constant Value:

21
(0x00000015)


### BIOMETRIC_ERROR_NO_HARDWARE

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int BIOMETRIC_ERROR_NO_HARDWARE
```

There is no biometric hardware.

<br />

Constant Value:

12
(0x0000000c)


### BIOMETRIC_ERROR_SECURITY_UPDATE_REQUIRED

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int BIOMETRIC_ERROR_SECURITY_UPDATE_REQUIRED
```

A security vulnerability has been discovered and the sensor is unavailable until a
security update has addressed this issue. This error can be received if for example,
authentication was requested with `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#BIOMETRIC_STRONG`, but the
sensor's strength can currently only meet `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#BIOMETRIC_WEAK`.

<br />

Constant Value:

15
(0x0000000f)


### BIOMETRIC_NO_AUTHENTICATION

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final long BIOMETRIC_NO_AUTHENTICATION
```

Returned from `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#getLastAuthenticationTime(int)` when no matching
successful authentication has been performed since boot.

<br />

Constant Value:

-1
(0xffffffffffffffff)


### BIOMETRIC_SUCCESS

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int BIOMETRIC_SUCCESS
```

No error detected.

<br />

Constant Value:

0
(0x00000000)


### ICON_TYPE_ACCOUNT

Added in [version 36.1](https://developer.android.com/topic/libraries/support-library/revisions)

```
public static final int ICON_TYPE_ACCOUNT
```

An icon representing a user account.

<br />

Constant Value:

2
(0x00000002)


### ICON_TYPE_GENERIC

Added in [version 36.1](https://developer.android.com/topic/libraries/support-library/revisions)

```
public static final int ICON_TYPE_GENERIC
```

A generic icon.

<br />

Constant Value:

3
(0x00000003)


### ICON_TYPE_MESSAGE

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int ICON_TYPE_MESSAGE
```

An icon representing a message or chat option, such as to contact support or an
administrator.

<br />

Constant Value:

6
(0x00000006)


### ICON_TYPE_PASSWORD

Added in [version 36.1](https://developer.android.com/topic/libraries/support-library/revisions)

```
public static final int ICON_TYPE_PASSWORD
```

An icon representing a password.

<br />

Constant Value:

0
(0x00000000)


### ICON_TYPE_QR_CODE

Added in [version 36.1](https://developer.android.com/topic/libraries/support-library/revisions)

```
public static final int ICON_TYPE_QR_CODE
```

An icon representing a QR code.

<br />

Constant Value:

1
(0x00000001)


### ICON_TYPE_RESET

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int ICON_TYPE_RESET
```

An icon representing a password reset.

<br />

Constant Value:

5
(0x00000005)


### ICON_TYPE_SETTING

Added in [version 36.1](https://developer.android.com/topic/libraries/support-library/revisions)

```
public static final int ICON_TYPE_SETTING
```

An icon representing settings (a gear).

<br />

Constant Value:

4
(0x00000004)


### ICON_TYPE_SUPERVISED

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int ICON_TYPE_SUPERVISED
```

An icon representing a supervised account.

<br />

Constant Value:

7
(0x00000007)


## Public methods

### canAuthenticate

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level
30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int canAuthenticate ()
```


**This method was deprecated
in API level 30.**   

See `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#canAuthenticate(int)`.

Determine if biometrics can be used. In other words, determine if
`https://developer.android.com/reference/android/hardware/biometrics/BiometricPrompt` can be expected to be shown (hardware available, templates enrolled,
user-enabled). This is the equivalent of `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#canAuthenticate(int)` with
`https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#BIOMETRIC_WEAK`


Requires `https://developer.android.com/reference/android/Manifest.permission#USE_BIOMETRIC`

<br />

| Returns ||
|---|---|
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_NONE_ENROLLED` if the user does not have any strong biometrics enrolled, or `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_HW_UNAVAILABLE` if none are currently supported/enabled. Returns `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_SUCCESS` if a strong biometric can currently be used (enrolled and available). Value is one of the following: - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_SUCCESS` - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_HW_UNAVAILABLE` - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_NONE_ENROLLED` - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_NO_HARDWARE` - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_SECURITY_UPDATE_REQUIRED` - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_IDENTITY_CHECK_NOT_ACTIVE` |

### canAuthenticate

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int canAuthenticate (int authenticators)
```

Determine if any of the provided authenticators can be used. In other words, determine if
`https://developer.android.com/reference/android/hardware/biometrics/BiometricPrompt` can be expected to be shown (hardware available, templates enrolled,
user-enabled).

For biometric authenticators, determine if the device can currently authenticate with at
least the requested strength. For example, invoking this API with
`https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#BIOMETRIC_WEAK` on a device that currently only has
`https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#BIOMETRIC_STRONG` enrolled will return `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_SUCCESS`.

Invoking this API with `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#DEVICE_CREDENTIAL` can be used to determine
if the user has a PIN/Pattern/Password set up.


Requires `https://developer.android.com/reference/android/Manifest.permission#USE_BIOMETRIC`

<br />

| Parameters ||
|---|---|
| `authenticators` | `int`: bit field consisting of constants defined in `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators`. If multiple authenticators are queried, a logical OR will be applied. For example, if `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#DEVICE_CREDENTIAL` \| `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#BIOMETRIC_STRONG` is queried and only `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#DEVICE_CREDENTIAL` is set up, this API will return `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_SUCCESS` Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#BIOMETRIC_STRONG` - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#BIOMETRIC_WEAK` - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#DEVICE_CREDENTIAL` - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#IDENTITY_CHECK` |

| Returns ||
|---|---|
| `int` | `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_NONE_ENROLLED` if the user does not have any of the requested authenticators enrolled, or `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_HW_UNAVAILABLE` if none are currently supported/enabled. Returns `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_SUCCESS` if one of the requested authenticators can currently be used (enrolled and available). Value is one of the following: - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_SUCCESS` - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_HW_UNAVAILABLE` - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_NONE_ENROLLED` - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_NO_HARDWARE` - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_SECURITY_UPDATE_REQUIRED` - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_ERROR_IDENTITY_CHECK_NOT_ACTIVE` |

### getBiometricSensorStrengths

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Map<Integer, Integer> getBiometricSensorStrengths ()
```

Returns a map of biometric modalities to their sensor security strengths.

Note that this API is intended exclusively for use by applications that hold a
qualifying Android role (currently only `android.app.role.RoleManager#ROLE_WALLET` or
`android.app.role.RoleManager#ROLE_DEVICE_POLICY_MANAGEMENT`) and are currently
running in the foreground.

The returned map links each biometric modality available on the device (e.g.,
`TYPE_FINGERPRINT` for fingerprint or `TYPE_FACE` for face) to its
corresponding sensor strength (e.g., `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#BIOMETRIC_STRONG` for Class-3
or `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#LESS_THAN_STRONG` for unknown/unexposed cases).


Requires `https://developer.android.com/reference/android/Manifest.permission#USE_BIOMETRIC` and `https://developer.android.com/reference/android/Manifest.permission#ACCESS_BIOMETRIC_SENSOR_STRENGTHS`

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/Map<https://developer.android.com/reference/java/lang/Integer, https://developer.android.com/reference/java/lang/Integer>` | This value cannot be `null`. <br /> |

### getLastAuthenticationTime

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long getLastAuthenticationTime (int authenticators)
```

Gets the last time the user successfully authenticated using one of the given authenticators.
The returned value is time in
`https://developer.android.com/reference/android/os/SystemClock#elapsedRealtime()` (time since
boot, including sleep).


`https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_NO_AUTHENTICATION` is returned in the case where there
has been no successful authentication using any of the given authenticators since boot.


Currently, only `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#DEVICE_CREDENTIAL` and
`https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#BIOMETRIC_STRONG` are accepted. `https://developer.android.com/reference/java/lang/IllegalArgumentException` will
be thrown if `authenticators` contains other authenticator types.


Note that this may return successful authentication times even if the device is currently
locked. You may use `https://developer.android.com/reference/android/app/KeyguardManager#isDeviceLocked()` to determine if the device
is unlocked or not. Additionally, this method may return valid times for an authentication
method that is no longer available. For instance, if the user unlocked the device with a
`https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#BIOMETRIC_STRONG` authenticator but then deleted that authenticator
(e.g., fingerprint data), this method will still return the time of that unlock for
`https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#BIOMETRIC_STRONG` if it is the most recent successful event. The caveat
is that `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_NO_AUTHENTICATION` will be returned if the device
no longer has a secure lock screen at all, even if there were successful authentications
performed before the lock screen was made insecure.


Requires `https://developer.android.com/reference/android/Manifest.permission#USE_BIOMETRIC`


Value is a non-negative timestamp in the
`https://developer.android.com/reference/android/os/SystemClock#elapsedRealtime()` time base.

<br />

| Parameters ||
|---|---|
| `authenticators` | `int`: bit field consisting of constants defined in `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators`. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#BIOMETRIC_STRONG` - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#BIOMETRIC_WEAK` - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#DEVICE_CREDENTIAL` - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#IDENTITY_CHECK` |

| Returns ||
|---|---|
| `long` | the time of last authentication or `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#BIOMETRIC_NO_AUTHENTICATION` Value is a non-negative timestamp in the `https://developer.android.com/reference/android/os/SystemClock#elapsedRealtime()` time base. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if `authenticators` contains values other than `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#DEVICE_CREDENTIAL` and `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#BIOMETRIC_STRONG` or is 0. |

### getStrings

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public BiometricManager.Strings getStrings (int authenticators)
```

Produces an instance of the `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Strings` class, which provides localized strings for an
application, given a set of allowed authenticator types.


Requires `https://developer.android.com/reference/android/Manifest.permission#USE_BIOMETRIC`

<br />

| Parameters ||
|---|---|
| `authenticators` | `int`: A bit field representing the types of `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators` that may be used for authentication. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#BIOMETRIC_STRONG` - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#BIOMETRIC_WEAK` - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#DEVICE_CREDENTIAL` - `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Authenticators#IDENTITY_CHECK` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Strings` | A `https://developer.android.com/reference/android/hardware/biometrics/BiometricManager.Strings` collection for the given allowed authenticator types. This value cannot be `null`. <br /> |