public class

CredentialAuthPrompt

extends java.lang.Object

 java.lang.Object

↳androidx.biometric.auth.CredentialAuthPrompt

Gradle dependencies

compile group: 'androidx.biometric', name: 'biometric', version: '1.2.0-alpha04'

  • groupId: androidx.biometric
  • artifactId: biometric
  • version: 1.2.0-alpha04

Artifact androidx.biometric:biometric:1.2.0-alpha04 it located at Google repository (https://maven.google.com/)

Overview

An authentication prompt that requires the user to present the screen lock credential (i.e. PIN, pattern, or password) for the device.

Summary

Methods
public java.lang.CharSequencegetDescription()

Gets the description to be displayed on the prompt, if set.

public java.lang.CharSequencegetTitle()

Gets the title to be displayed on the prompt.

public AuthPromptstartAuthentication(AuthPromptHost host, BiometricPrompt.CryptoObject crypto, AuthPromptCallback callback)

Shows an authentication prompt to the user.

public AuthPromptstartAuthentication(AuthPromptHost host, BiometricPrompt.CryptoObject crypto, java.util.concurrent.Executor executor, AuthPromptCallback callback)

Shows an authentication prompt to the user.

from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Methods

public AuthPrompt startAuthentication(AuthPromptHost host, BiometricPrompt.CryptoObject crypto, AuthPromptCallback callback)

Shows an authentication prompt to the user.

Parameters:

host: A wrapper for the component that will host the prompt.
crypto: A cryptographic object to be associated with this authentication.
callback: The callback object that will receive and process authentication events. Each callback method will be run on the main thread.

Returns:

A handle to the shown prompt.

See also: CredentialAuthPrompt.startAuthentication(AuthPromptHost, BiometricPrompt.CryptoObject, Executor, AuthPromptCallback)

public AuthPrompt startAuthentication(AuthPromptHost host, BiometricPrompt.CryptoObject crypto, java.util.concurrent.Executor executor, AuthPromptCallback callback)

Shows an authentication prompt to the user.

Parameters:

host: A wrapper for the component that will host the prompt.
crypto: A cryptographic object to be associated with this authentication.
executor: The executor that will be used to run authentication callback methods.
callback: The callback object that will receive and process authentication events.

Returns:

A handle to the shown prompt.

See also: CredentialAuthPrompt.startAuthentication(AuthPromptHost, BiometricPrompt.CryptoObject, AuthPromptCallback)

public java.lang.CharSequence getTitle()

Gets the title to be displayed on the prompt.

Returns:

The title for the prompt.

public java.lang.CharSequence getDescription()

Gets the description to be displayed on the prompt, if set.

Returns:

The description for the prompt.

See also: CredentialAuthPrompt.Builder.setDescription(CharSequence)

Source

/*
 * Copyright 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package androidx.biometric.auth;

import android.annotation.SuppressLint;
import android.os.Build;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.biometric.BiometricManager.Authenticators;
import androidx.biometric.BiometricPrompt;

import java.util.concurrent.Executor;

/**
 * An authentication prompt that requires the user to present the screen lock credential (i.e. PIN,
 * pattern, or password) for the device.
 *
 * @see Authenticators#DEVICE_CREDENTIAL
 * @see Class2BiometricAuthPrompt
 * @see Class2BiometricOrCredentialAuthPrompt
 * @see Class3BiometricAuthPrompt
 * @see Class3BiometricOrCredentialAuthPrompt
 */
@RequiresApi(Build.VERSION_CODES.R)
public class CredentialAuthPrompt {
    @NonNull private final BiometricPrompt.PromptInfo mPromptInfo;

    /**
     * Constructs an authentication prompt with the given parameters.
     *
     * @param promptInfo A set of options describing how the prompt should appear and behave.
     */
    CredentialAuthPrompt(@NonNull BiometricPrompt.PromptInfo promptInfo) {
        mPromptInfo = promptInfo;
    }

    /**
     * Shows an authentication prompt to the user.
     *
     * @param host     A wrapper for the component that will host the prompt.
     * @param crypto   A cryptographic object to be associated with this authentication.
     * @param callback The callback object that will receive and process authentication events. Each
     *                 callback method will be run on the main thread.
     * @return A handle to the shown prompt.
     *
     * @see #startAuthentication(AuthPromptHost, BiometricPrompt.CryptoObject, Executor,
     * AuthPromptCallback)
     */
    @NonNull
    public AuthPrompt startAuthentication(
            @NonNull AuthPromptHost host,
            @Nullable BiometricPrompt.CryptoObject crypto,
            @NonNull AuthPromptCallback callback) {
        return AuthPromptUtils.startAuthentication(
                host, mPromptInfo, crypto, null /* executor */, callback);
    }

    /**
     * Shows an authentication prompt to the user.
     *
     * @param host     A wrapper for the component that will host the prompt.
     * @param crypto   A cryptographic object to be associated with this authentication.
     * @param executor The executor that will be used to run authentication callback methods.
     * @param callback The callback object that will receive and process authentication events.
     * @return A handle to the shown prompt.
     *
     * @see #startAuthentication(AuthPromptHost, BiometricPrompt.CryptoObject, AuthPromptCallback)
     */
    @NonNull
    public AuthPrompt startAuthentication(
            @NonNull AuthPromptHost host,
            @Nullable BiometricPrompt.CryptoObject crypto,
            @NonNull Executor executor,
            @NonNull AuthPromptCallback callback) {
        return AuthPromptUtils.startAuthentication(
                host, mPromptInfo, crypto, executor, callback);
    }

    /**
     * Gets the title to be displayed on the prompt.
     *
     * @return The title for the prompt.
     */
    @NonNull
    public CharSequence getTitle() {
        return mPromptInfo.getTitle();
    }

    /**
     * Gets the description to be displayed on the prompt, if set.
     *
     * @return The description for the prompt.
     *
     * @see Builder#setDescription(CharSequence)
     */
    @Nullable
    public CharSequence getDescription() {
        return mPromptInfo.getDescription();
    }

    /**
     * Builder for a {@link CredentialAuthPrompt} with configurable options.
     */
    public static final class Builder {
        // Required fields.
        @NonNull private final CharSequence mTitle;

        // Optional fields.
        @Nullable private CharSequence mDescription = null;

        /**
         * Constructs a prompt builder with the given required options.
         *
         * @param title The title to be displayed on the prompt.
         */
        @SuppressLint("ExecutorRegistration")
        public Builder(@NonNull CharSequence title) {
            mTitle = title;
        }

        /**
         * Sets a description that should be displayed on the prompt. Defaults to {@code null}.
         *
         * @param description A description for the prompt.
         * @return This builder.
         */
        @NonNull
        public CredentialAuthPrompt.Builder setDescription(@NonNull CharSequence description) {
            mDescription = description;
            return this;
        }

        /**
         * Creates a new prompt with the specified options.
         *
         * @return An instance of {@link CredentialAuthPrompt}.
         */
        @NonNull
        public CredentialAuthPrompt build() {
            final BiometricPrompt.PromptInfo promptInfo = new BiometricPrompt.PromptInfo.Builder()
                    .setTitle(mTitle)
                    .setDescription(mDescription)
                    .setAllowedAuthenticators(Authenticators.DEVICE_CREDENTIAL)
                    .build();
            return new CredentialAuthPrompt(promptInfo);
        }
    }
}