# CreateEntry

Artifact: [androidx.credentials:credentials](https://developer.android.com/jetpack/androidx/releases/credentials) [View Source](https://cs.android.com/search?q=file:androidx/credentials/provider/CreateEntry.kt+class:androidx.credentials.provider.CreateEntry) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/credentials#1.2.0)

*** ** * ** ***

<br />

```
@RequiresApi(value = 23)
public final class CreateEntry
```

<br />

*** ** * ** ***

An entry to be shown on the selector during a create flow initiated when an app calls `https://developer.android.com/reference/androidx/credentials/CredentialManager#createCredential(android.content.Context,androidx.credentials.CreateCredentialRequest)`

A `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry` points to a location such as an account, or a group where the credential can be registered. When user selects this entry, the corresponding `https://developer.android.com/reference/android/app/PendingIntent.html` is fired, and the credential creation can be completed.

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | If `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#accountName()` is empty |

## Summary

| ### Nested types |
|---|
| `public final class https://developer.android.com/reference/androidx/credentials/provider/CreateEntry.Builder` A builder for `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry` |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#CreateEntry(kotlin.CharSequence,android.app.PendingIntent,kotlin.CharSequence,java.time.Instant,android.graphics.drawable.Icon,kotlin.Int,kotlin.Int,kotlin.Int,kotlin.Boolean)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/CharSequence.html accountName, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/app/PendingIntent.html pendingIntent, https://developer.android.com/reference/java/lang/CharSequence.html description, https://developer.android.com/reference/java/time/Instant.html lastUsedTime, https://developer.android.com/reference/android/graphics/drawable/Icon.html icon, https://developer.android.com/reference/java/lang/Integer.html passwordCredentialCount, https://developer.android.com/reference/java/lang/Integer.html publicKeyCredentialCount, https://developer.android.com/reference/java/lang/Integer.html totalCredentialCount, boolean isAutoSelectAllowed )` |
| `@https://developer.android.com/reference/androidx/annotation/RequiresApi(value = 35) https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#CreateEntry(kotlin.CharSequence,android.app.PendingIntent,kotlin.CharSequence,java.time.Instant,android.graphics.drawable.Icon,kotlin.Int,kotlin.Int,kotlin.Int,kotlin.Boolean,androidx.credentials.provider.BiometricPromptData)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/CharSequence.html accountName, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/app/PendingIntent.html pendingIntent, https://developer.android.com/reference/java/lang/CharSequence.html description, https://developer.android.com/reference/java/time/Instant.html lastUsedTime, https://developer.android.com/reference/android/graphics/drawable/Icon.html icon, https://developer.android.com/reference/java/lang/Integer.html passwordCredentialCount, https://developer.android.com/reference/java/lang/Integer.html publicKeyCredentialCount, https://developer.android.com/reference/java/lang/Integer.html totalCredentialCount, boolean isAutoSelectAllowed, https://developer.android.com/reference/androidx/credentials/provider/BiometricPromptData biometricPromptData )` |

| ### Public methods |
|---|---|
| `static final https://developer.android.com/reference/androidx/credentials/provider/CreateEntry` | `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#fromCreateEntry(android.service.credentials.CreateEntry)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/service/credentials/CreateEntry.html createEntry)` Converts a framework `https://developer.android.com/reference/android/service/credentials/CreateEntry.html` class to a Jetpack `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry` class |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/CharSequence.html` | `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#getAccountName()()` the name of the account where the credential will be saved |
| `final https://developer.android.com/reference/androidx/credentials/provider/BiometricPromptData` | `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#getBiometricPromptData()()` the data that is set optionally to utilize a credential manager flow that directly handles the biometric verification and presents back the response; set to null by default, so if not opted in, the embedded biometric prompt flow will not show |
| `final https://developer.android.com/reference/java/lang/CharSequence.html` | `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#getDescription()()` the localized description shown on UI about where the credential is stored |
| `final https://developer.android.com/reference/android/graphics/drawable/Icon.html` | `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#getIcon()()` the icon to be displayed with this entry on the UI, must be created using `https://developer.android.com/reference/android/graphics/drawable/Icon.html#createWithResource(android.content.Context, int)` when possible, and especially not with `https://developer.android.com/reference/android/graphics/drawable/Icon.html#createWithBitmap(android.graphics.Bitmap)` as the latter consumes more memory and may cause undefined behavior due to memory implications on internal transactions |
| `final https://developer.android.com/reference/java/time/Instant.html` | `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#getLastUsedTime()()` the last time the account underlying this entry was used by the user, distinguishable up to the milli second mark only such that if two entries have the same millisecond precision, they will be considered to have been used at the same time |
| `final https://developer.android.com/reference/java/lang/Integer.html` | `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#getPasswordCredentialCount()()` Returns the no. of password type credentials that the provider with this entry has. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/app/PendingIntent.html` | `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#getPendingIntent()()` the `https://developer.android.com/reference/android/app/PendingIntent.html` that will get invoked when the user selects this entry, must be created with a unique request code per entry, with flag `https://developer.android.com/reference/android/app/PendingIntent.html#FLAG_MUTABLE` to allow the Android system to attach the final request, and NOT with flag `https://developer.android.com/reference/android/app/PendingIntent.html#FLAG_ONE_SHOT` as it can be invoked multiple times |
| `final https://developer.android.com/reference/java/lang/Integer.html` | `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#getPublicKeyCredentialCount()()` Returns the no. of public key type credentials that the provider with this entry has. |
| `final https://developer.android.com/reference/java/lang/Integer.html` | `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#getTotalCredentialCount()()` Returns the no. of total credentials that the provider with this entry has. |
| `final boolean` | `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#isAutoSelectAllowed()()` whether this entry should be auto selected if it is the only entry on the selector |

## Public constructors

### CreateEntry

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

```
public CreateEntry(
    @NonNull CharSequence accountName,
    @NonNull PendingIntent pendingIntent,
    CharSequence description,
    Instant lastUsedTime,
    Icon icon,
    Integer passwordCredentialCount,
    Integer publicKeyCredentialCount,
    Integer totalCredentialCount,
    boolean isAutoSelectAllowed
)
```

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/CharSequence.html accountName` | the name of the account where the credential will be saved |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/app/PendingIntent.html pendingIntent` | the `https://developer.android.com/reference/android/app/PendingIntent.html` that will get invoked when the user selects this entry, must be created with a unique request code per entry, with flag `https://developer.android.com/reference/android/app/PendingIntent.html#FLAG_MUTABLE` to allow the Android system to attach the final request, and NOT with flag `https://developer.android.com/reference/android/app/PendingIntent.html#FLAG_ONE_SHOT` as it can be invoked multiple times |
| `https://developer.android.com/reference/java/lang/CharSequence.html description` | the localized description shown on UI about where the credential is stored |
| `https://developer.android.com/reference/java/time/Instant.html lastUsedTime` | the last time the account underlying this entry was used by the user, distinguishable up to the milli second mark only such that if two entries have the same millisecond precision, they will be considered to have been used at the same time |
| `https://developer.android.com/reference/android/graphics/drawable/Icon.html icon` | the icon to be displayed with this entry on the UI, must be created using `https://developer.android.com/reference/android/graphics/drawable/Icon.html#createWithResource(android.content.Context, int)` when possible, and especially not with `https://developer.android.com/reference/android/graphics/drawable/Icon.html#createWithBitmap(android.graphics.Bitmap)` as the latter consumes more memory and may cause undefined behavior due to memory implications on internal transactions |
| `https://developer.android.com/reference/java/lang/Integer.html passwordCredentialCount` | the no. of password credentials contained by the provider |
| `https://developer.android.com/reference/java/lang/Integer.html publicKeyCredentialCount` | the no. of public key credentials contained by the provider |
| `https://developer.android.com/reference/java/lang/Integer.html totalCredentialCount` | the total no. of credentials contained by the provider |
| `boolean isAutoSelectAllowed` | whether this entry should be auto selected if it is the only entry on the selector |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | If `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#(kotlin.CharSequence,android.app.PendingIntent,kotlin.CharSequence,java.time.Instant,android.graphics.drawable.Icon,kotlin.Int,kotlin.Int,kotlin.Int,kotlin.Boolean)` is empty, or if `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#(kotlin.CharSequence,android.app.PendingIntent,kotlin.CharSequence,java.time.Instant,android.graphics.drawable.Icon,kotlin.Int,kotlin.Int,kotlin.Int,kotlin.Boolean)` is longer than 300 characters (important: make sure your descriptions across all locales are within this limit) |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-null-pointer-exception/index.html` | If `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#(kotlin.CharSequence,android.app.PendingIntent,kotlin.CharSequence,java.time.Instant,android.graphics.drawable.Icon,kotlin.Int,kotlin.Int,kotlin.Int,kotlin.Boolean)` or `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#(kotlin.CharSequence,android.app.PendingIntent,kotlin.CharSequence,java.time.Instant,android.graphics.drawable.Icon,kotlin.Int,kotlin.Int,kotlin.Int,kotlin.Boolean)` is null |

### CreateEntry

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

```
@RequiresApi(value = 35)
public CreateEntry(
    @NonNull CharSequence accountName,
    @NonNull PendingIntent pendingIntent,
    CharSequence description,
    Instant lastUsedTime,
    Icon icon,
    Integer passwordCredentialCount,
    Integer publicKeyCredentialCount,
    Integer totalCredentialCount,
    boolean isAutoSelectAllowed,
    BiometricPromptData biometricPromptData
)
```

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/CharSequence.html accountName` | the name of the account where the credential will be saved |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/app/PendingIntent.html pendingIntent` | the `https://developer.android.com/reference/android/app/PendingIntent.html` that will get invoked when the user selects this entry, must be created with a unique request code per entry, with flag `https://developer.android.com/reference/android/app/PendingIntent.html#FLAG_MUTABLE` to allow the Android system to attach the final request, and NOT with flag `https://developer.android.com/reference/android/app/PendingIntent.html#FLAG_ONE_SHOT` as it can be invoked multiple times |
| `https://developer.android.com/reference/java/lang/CharSequence.html description` | the localized description shown on UI about where the credential is stored |
| `https://developer.android.com/reference/java/time/Instant.html lastUsedTime` | the last time the account underlying this entry was used by the user, distinguishable up to the milli second mark only such that if two entries have the same millisecond precision, they will be considered to have been used at the same time |
| `https://developer.android.com/reference/android/graphics/drawable/Icon.html icon` | the icon to be displayed with this entry on the UI, must be created using `https://developer.android.com/reference/android/graphics/drawable/Icon.html#createWithResource(android.content.Context, int)` when possible, and especially not with `https://developer.android.com/reference/android/graphics/drawable/Icon.html#createWithBitmap(android.graphics.Bitmap)` as the latter consumes more memory and may cause undefined behavior due to memory implications on internal transactions |
| `https://developer.android.com/reference/java/lang/Integer.html passwordCredentialCount` | the no. of password credentials contained by the provider |
| `https://developer.android.com/reference/java/lang/Integer.html publicKeyCredentialCount` | the no. of public key credentials contained by the provider |
| `https://developer.android.com/reference/java/lang/Integer.html totalCredentialCount` | the total no. of credentials contained by the provider |
| `boolean isAutoSelectAllowed` | whether this entry should be auto selected if it is the only entry on the selector |
| `https://developer.android.com/reference/androidx/credentials/provider/BiometricPromptData biometricPromptData` | the data that is set optionally to utilize a credential manager flow that directly handles the biometric verification and presents back the response; set to null by default, so if not opted in, the embedded biometric prompt flow will not show |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | If `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#(kotlin.CharSequence,android.app.PendingIntent,kotlin.CharSequence,java.time.Instant,android.graphics.drawable.Icon,kotlin.Int,kotlin.Int,kotlin.Int,kotlin.Boolean,androidx.credentials.provider.BiometricPromptData)` is empty, or if `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#(kotlin.CharSequence,android.app.PendingIntent,kotlin.CharSequence,java.time.Instant,android.graphics.drawable.Icon,kotlin.Int,kotlin.Int,kotlin.Int,kotlin.Boolean,androidx.credentials.provider.BiometricPromptData)` is longer than 300 characters (important: make sure your descriptions across all locales are within this limit) |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-null-pointer-exception/index.html` | If `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#(kotlin.CharSequence,android.app.PendingIntent,kotlin.CharSequence,java.time.Instant,android.graphics.drawable.Icon,kotlin.Int,kotlin.Int,kotlin.Int,kotlin.Boolean,androidx.credentials.provider.BiometricPromptData)` or `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#(kotlin.CharSequence,android.app.PendingIntent,kotlin.CharSequence,java.time.Instant,android.graphics.drawable.Icon,kotlin.Int,kotlin.Int,kotlin.Int,kotlin.Boolean,androidx.credentials.provider.BiometricPromptData)` is null |

## Public methods

### fromCreateEntry

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

```
public static final CreateEntry fromCreateEntry(@NonNull CreateEntry createEntry)
```

Converts a framework `https://developer.android.com/reference/android/service/credentials/CreateEntry.html` class to a Jetpack `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry` class

Note that this API is not needed in a general credential creation flow that is implemented using this jetpack library, where you are only required to construct an instance of `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry` to populate the `https://developer.android.com/reference/androidx/credentials/provider/BeginCreateCredentialResponse`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/service/credentials/CreateEntry.html createEntry` | the instance of framework class to be converted |

### getAccountName

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

```
public final @NonNull CharSequence getAccountName()
```

the name of the account where the credential will be saved

### getBiometricPromptData

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

```
public final BiometricPromptData getBiometricPromptData()
```

the data that is set optionally to utilize a credential manager flow that directly handles the biometric verification and presents back the response; set to null by default, so if not opted in, the embedded biometric prompt flow will not show

### getDescription

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

```
public final CharSequence getDescription()
```

the localized description shown on UI about where the credential is stored

### getIcon

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

```
public final Icon getIcon()
```

the icon to be displayed with this entry on the UI, must be created using `https://developer.android.com/reference/android/graphics/drawable/Icon.html#createWithResource(android.content.Context, int)` when possible, and especially not with `https://developer.android.com/reference/android/graphics/drawable/Icon.html#createWithBitmap(android.graphics.Bitmap)` as the latter consumes more memory and may cause undefined behavior due to memory implications on internal transactions

### getLastUsedTime

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

```
public final Instant getLastUsedTime()
```

the last time the account underlying this entry was used by the user, distinguishable up to the milli second mark only such that if two entries have the same millisecond precision, they will be considered to have been used at the same time

### getPasswordCredentialCount

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

```
public final Integer getPasswordCredentialCount()
```

Returns the no. of password type credentials that the provider with this entry has.

### getPendingIntent

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

```
public final @NonNull PendingIntent getPendingIntent()
```

the `https://developer.android.com/reference/android/app/PendingIntent.html` that will get invoked when the user selects this entry, must be created with a unique request code per entry, with flag `https://developer.android.com/reference/android/app/PendingIntent.html#FLAG_MUTABLE` to allow the Android system to attach the final request, and NOT with flag `https://developer.android.com/reference/android/app/PendingIntent.html#FLAG_ONE_SHOT` as it can be invoked multiple times

### getPublicKeyCredentialCount

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

```
public final Integer getPublicKeyCredentialCount()
```

Returns the no. of public key type credentials that the provider with this entry has.

### getTotalCredentialCount

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

```
public final Integer getTotalCredentialCount()
```

Returns the no. of total credentials that the provider with this entry has.

This total count is not necessarily equal to the sum of `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#getPasswordCredentialCount()` and `https://developer.android.com/reference/androidx/credentials/provider/CreateEntry#getPublicKeyCredentialCount()`.

### isAutoSelectAllowed

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

```
public final boolean isAutoSelectAllowed()
```

whether this entry should be auto selected if it is the only entry on the selector