CreateRestoreCredentialRequest


public final class CreateRestoreCredentialRequest extends CreateCredentialRequest


A request to create a restore credential used for app restore purpose. App restore feature is a feature that allows users to copy an app and its data to a new Android device.

If the isCloudBackupEnabled is true, the restore credential service will periodically backup the restore credential to cloud. In order to use this setting, the user device must enable backup and have end-to-end-encryption enabled, such as screen lock. More about cloud backup can be found here. Cloud backup is supported on Android 2.2 and above. If the cloud backup is not enabled, catch the E2eeUnavailableException and retry without cloud backup.

Throws
androidx.credentials.exceptions.restorecredential.E2eeUnavailableException

if isCloudBackupEnabled was requested but the user device did not enable backup or e2ee (screen lock).

androidx.credentials.exceptions.restorecredential.CreateRestoreCredentialDomException

if the requestJson is an invalid Json that does not follow the standard webauthn web json format

kotlin.IllegalArgumentException

If requestJson is empty, or if it is not a valid JSON, or if it doesn't have a valid user.id defined according to the webauthn spec (https://w3c.github.io/webauthn/#dictdef-publickeycredentialcreationoptionsjson)

Summary

Public constructors

CreateRestoreCredentialRequest(
    @NonNull String requestJson,
    boolean isCloudBackupEnabled
)

Public methods

final @NonNull String

the request in JSON format in the standard webauthn web json.

final boolean

whether the credential should be backed up to cloud.

Inherited methods

From androidx.credentials.CreateCredentialRequest
final @NonNull Bundle

the partial request data in the Bundle format that will be sent to the provider during the initial candidate query stage, which should not contain sensitive user credential information (note: bundle keys in the form of androidx.credentials.* are reserved for internal library use)

final @NonNull Bundle

the request data in the Bundle format

final @NonNull CreateCredentialRequest.DisplayInfo

the information to be displayed on the screen

final String

the origin of a different application if the request is being made on behalf of that application (Note: for API level >=34, setting a non-null value for this parameter will throw a SecurityException if android.permission.CREDENTIAL_MANAGER_SET_ORIGIN is not present)

final boolean

true if you prefer the operation to return immediately when there is no available passkey registration offering instead of falling back to discovering remote options, and false (preferred by default) otherwise

final @NonNull String

the credential type determined by the credential-type-specific subclass (e.g. the type for CreatePasswordRequest is PasswordCredential.TYPE_PASSWORD_CREDENTIAL and for CreatePublicKeyCredentialRequest is PublicKeyCredential.TYPE_PUBLIC_KEY_CREDENTIAL)

final boolean

whether a create option will be automatically chosen if it is the only one available to the user

final boolean

true if must only be fulfilled by a system provider and false otherwise

Public constructors

CreateRestoreCredentialRequest

Added in 1.5.0-beta01
public CreateRestoreCredentialRequest(
    @NonNull String requestJson,
    boolean isCloudBackupEnabled
)
Parameters
@NonNull String requestJson

the request in JSON format in the standard webauthn web json.

boolean isCloudBackupEnabled

whether the credential should be backed up to cloud.

Public methods

getRequestJson

Added in 1.5.0-beta01
public final @NonNull String getRequestJson()

the request in JSON format in the standard webauthn web json.

isCloudBackupEnabled

Added in 1.5.0-beta01
public final boolean isCloudBackupEnabled()

whether the credential should be backed up to cloud.