Stay organized with collections Save and categorize content based on your preferences.

CreateCustomCredentialRequest

public class CreateCustomCredentialRequest extends CreateCredentialRequest


Base custom create request class for registering a credential.

An application can construct a subtype custom request and call CredentialManager.createCredential to launch framework UI flows to collect consent and any other metadata needed from the user to register a new user credential.

If you get a CreateCustomCredentialRequest instead of a type-safe request class such as CreatePasswordRequest, CreatePublicKeyCredentialRequest, etc., then you should check if you have any other library at interest that supports this custom type of credential request, and if so use its parsing utilities to resolve to a type-safe class within that library.

Note: The Bundle keys for credentialData and candidateQueryData should not be in the form of androidx.credentials.*` as they are reserved for internal use by this androidx library.

Throws
kotlin.IllegalArgumentException kotlin.IllegalArgumentException

If type is empty

kotlin.NullPointerException kotlin.NullPointerException

If type, credentialData, or candidateQueryData is null

Summary

Public constructors

CreateCustomCredentialRequest(
    @NonNull String type,
    @NonNull Bundle credentialData,
    @NonNull Bundle candidateQueryData,
    boolean isSystemProviderRequired,
    @NonNull CreateCredentialRequest.DisplayInfo displayInfo,
    boolean isAutoSelectAllowed,
    String origin
)

Public methods

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 data of this CreateCustomCredentialRequest in the Bundle format (note: bundle keys in the form of androidx.credentials.* are reserved for internal library use)

final @NonNull String

the credential type determined by the credential-type-specific subclass for custom use cases

final boolean

defines if a create entry will be automatically chosen if it is the only one available option, false by default

final boolean

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

Public constructors

CreateCustomCredentialRequest

public CreateCustomCredentialRequest(
    @NonNull String type,
    @NonNull Bundle credentialData,
    @NonNull Bundle candidateQueryData,
    boolean isSystemProviderRequired,
    @NonNull CreateCredentialRequest.DisplayInfo displayInfo,
    boolean isAutoSelectAllowed,
    String origin
)
Parameters
@NonNull String type

the credential type determined by the credential-type-specific subclass for custom use cases

@NonNull Bundle credentialData

the data of this CreateCustomCredentialRequest in the Bundle format (note: bundle keys in the form of androidx.credentials.* are reserved for internal library use)

@NonNull Bundle candidateQueryData

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)

boolean isSystemProviderRequired

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

@NonNull CreateCredentialRequest.DisplayInfo displayInfo

the information to be displayed on the screen

boolean isAutoSelectAllowed

defines if a create entry will be automatically chosen if it is the only one available option, false by default

String origin

the origin of a different application if the request is being made on behalf of that application. 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.

Public methods

getCandidateQueryData

public final @NonNull Bundle getCandidateQueryData()

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)

getCredentialData

public final @NonNull Bundle getCredentialData()

the data of this CreateCustomCredentialRequest in the Bundle format (note: bundle keys in the form of androidx.credentials.* are reserved for internal library use)

getType

public final @NonNull String getType()

the credential type determined by the credential-type-specific subclass for custom use cases

isAutoSelectAllowed

public final boolean isAutoSelectAllowed()

defines if a create entry will be automatically chosen if it is the only one available option, false by default

isSystemProviderRequired

public final boolean isSystemProviderRequired()

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