GetCredentialRequest


public final class GetCredentialRequest


Encapsulates a request to get a user credential.

An application can construct such a request by adding one or more types of CredentialOption, and then call CredentialManager.getCredential to launch framework UI flows to allow the user to consent to using a previously saved credential for the given application.

Summary

Nested types

public final class GetCredentialRequest.Builder

A builder for GetCredentialRequest.

Public constructors

GetCredentialRequest(
    @NonNull List<@NonNull CredentialOption> credentialOptions,
    String origin,
    boolean preferIdentityDocUi,
    ComponentName preferUiBrandingComponentName,
    boolean preferImmediatelyAvailableCredentials
)

Public methods

static final @NonNull GetCredentialRequest
@RequiresApi(value = 34)
@Discouraged(message = "It is recommended to construct a GetCredentialRequest by directly instantiating a GetCredentialRequest")
createFrom(@NonNull GetCredentialRequest request)

Parses the request into an instance of GetCredentialRequest.

static final @NonNull GetCredentialRequest
@Discouraged(message = "It is recommended to construct a GetCredentialRequest by directly instantiating a GetCredentialRequest")
createFrom(
    @NonNull List<@NonNull CredentialOption> credentialOptions,
    String origin,
    @NonNull Bundle metadata
)

Parses the raw data into an instance of GetCredentialRequest.

final @NonNull List<@NonNull CredentialOption>

the list of CredentialOption from which the user can choose one to authenticate to the app

final String

the origin of a different application if the request is being made on behalf of that application.

final boolean

the value which signals if the UI should be tailored to display an identity document like driver license etc.

final ComponentName

a service ComponentName from which the Credential Selector UI will pull its label and icon to render top level branding.

static final @NonNull Bundle
@Discouraged(message = "It should only be used by OEM services and library groups")
getRequestMetadataBundle(@NonNull GetCredentialRequest request)

Returns the request metadata as a Bundle.

final boolean

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

Public constructors

GetCredentialRequest

public GetCredentialRequest(
    @NonNull List<@NonNull CredentialOption> credentialOptions,
    String origin,
    boolean preferIdentityDocUi,
    ComponentName preferUiBrandingComponentName,
    boolean preferImmediatelyAvailableCredentials
)
Parameters
@NonNull List<@NonNull CredentialOption> credentialOptions

the list of CredentialOption from which the user can choose one to authenticate to the app

String origin

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)

boolean preferIdentityDocUi

the value which signals if the UI should be tailored to display an identity document like driver license etc

ComponentName preferUiBrandingComponentName

a service ComponentName from which the Credential Selector UI will pull its label and icon to render top level branding (Note: your app must have the permission android.permission.CREDENTIAL_MANAGER_SET_ALLOWED_PROVIDERS to specify this, or it would not take effect; also this bit may not take effect for Android API level 33 and below, depending on the pre-34 provider(s) you have chosen

boolean preferImmediatelyAvailableCredentials

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

Public methods

createFrom

Added in 1.5.0-alpha05
@RequiresApi(value = 34)
@Discouraged(message = "It is recommended to construct a GetCredentialRequest by directly instantiating a GetCredentialRequest")
public static final @NonNull GetCredentialRequest createFrom(@NonNull GetCredentialRequest request)

Parses the request into an instance of GetCredentialRequest.

Parameters
@NonNull GetCredentialRequest request

the framework GetCredentialRequest object

createFrom

@Discouraged(message = "It is recommended to construct a GetCredentialRequest by directly instantiating a GetCredentialRequest")
public static final @NonNull GetCredentialRequest createFrom(
    @NonNull List<@NonNull CredentialOption> credentialOptions,
    String origin,
    @NonNull Bundle metadata
)

Parses the raw data into an instance of GetCredentialRequest.

Parameters
@NonNull List<@NonNull CredentialOption> credentialOptions

matches GetCredentialRequest.credentialOptions

String origin

matches GetCredentialRequest.origin

@NonNull Bundle metadata

request metadata serialized as a Bundle using getRequestMetadataBundle

getCredentialOptions

Added in 1.2.0
public final @NonNull List<@NonNull CredentialOptiongetCredentialOptions()

the list of CredentialOption from which the user can choose one to authenticate to the app

getOrigin

Added in 1.2.0
public final String getOrigin()

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.

getPreferIdentityDocUi

Added in 1.2.0
public final boolean getPreferIdentityDocUi()

the value which signals if the UI should be tailored to display an identity document like driver license etc.

getPreferUiBrandingComponentName

Added in 1.2.0
public final ComponentName getPreferUiBrandingComponentName()

a service ComponentName from which the Credential Selector UI will pull its label and icon to render top level branding. Your app must have the permission android.permission.CREDENTIAL_MANAGER_SET_ALLOWED_PROVIDERS to specify this, or it would not take effect. Notice that this bit may not take effect for Android API level 33 and below, depending on the pre-34 provider(s) you have chosen.

getRequestMetadataBundle

Added in 1.5.0-alpha05
@Discouraged(message = "It should only be used by OEM services and library groups")
public static final @NonNull Bundle getRequestMetadataBundle(@NonNull GetCredentialRequest request)

Returns the request metadata as a Bundle.

Note: this is not the equivalent of the complete request itself. For example, it does not include the request's credentialOptions or origin.

preferImmediatelyAvailableCredentials

Added in 1.5.0-alpha05
public final boolean preferImmediatelyAvailableCredentials()

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