Android: autenticación biométrica | de Vinod Basté | mayo 2022

Fuente de la imagen: IStock Images

UNAdemás de las llamadas y los mensajes, ¿cuál es la función más utilizada en un teléfono inteligente? es fotografiado? ¿compartir archivos? ¿Ver videos o escuchar música? Es una característica que muchas personas usan a diario sin siquiera saberlo: ¡autenticación biométrica!

Con la identificación biométrica, puede desbloquear rápidamente su dispositivo con su huella dactilar o rostro y asegurarse de que usted utilice el dispositivo.

Nota: este artículo requiere un dispositivo con autenticación biométrica, p. B. un escáner de huellas dactilares o un dispositivo Android con reconocimiento facial.

Supongo que el lector tiene un conocimiento básico de cómo trabajar con Android Studio o crear aplicaciones de Android.

La biblioteca biométrica de AndroidX, una solución de autenticación de usuario integral para desarrolladores de Android, requiere una dependencia.

Agregue la siguiente línea al final de las dependencias de nivel de aplicación construir.gradle Archivo:

Usted define la versión de la biblioteca que usará e inclúyala en este código como una dependencia en tiempo de compilación. Para sincronizar su proyecto, vaya a la esquina superior derecha de Android Studio y haga clic en Sincronizar ahora.

  • Compruebe si el dispositivo tiene capacidades de autenticación biométrica.
  • Muestre un mensaje biométrico estandarizado para reconocimiento de huellas dactilares o rostro.
  • Se pueden usar devoluciones de llamada simples para detectar intentos de autenticación exitosos o fallidos.
  • Permita que los usuarios utilicen el PIN, el patrón o la contraseña de su dispositivo en lugar de las credenciales biométricas.
Android Biometrics Arquitectura BiometricPrompt

Debido a las API biométricas de Android, no todos los dispositivos admiten biometría. Entonces, en primer lugar, verifique si el dispositivo de su usuario es compatible con la autenticación biométrica. Solo toma unos pocos pasos simples.

Dentro del paquete, cree un nuevo archivo de objeto llamado BiométricoUtil. Esta es su clase auxiliar en Android Studio para administrar el proceso de autenticación biométrica.

Agregue la siguiente función para determinar la capacidad de hardware del usuario:

El código anterior crea un BiometricManager a partir del contexto de la aplicación y verifica si el dispositivo es compatible con la autenticación biométrica. puede autenticarse().

Sin embargo, esto no significa que el usuario esté listo para usar la autenticación biométrica. Es posible que tenga la tecnología requerida para el reconocimiento facial o la lectura de huellas dactilares en el dispositivo, pero no puede invocar un aviso biométrico a menos que su huella dactilar o su rostro se hayan registrado en la configuración de seguridad del dispositivo.

puede autenticarse() devuelve uno de tres resultados:

  • ÉXITO_BIOMÉTRICO: el hardware está disponible y el usuario ha registrado sus datos biométricos, por lo que el dispositivo está listo para usar un aviso biométrico.
  • BIOMETRIC_ERROR_NONE_ENROLLED: el dispositivo tiene capacidades biométricas, pero el usuario todavía necesita registrar sus huellas dactilares o rostro.
  • BIOMETRIC_ERROR_NO_HARDWARE: El hardware del dispositivo no admite la autenticación biométrica.

Agregue la siguiente función para asegurarse de que el dispositivo esté listo para usar un aviso biométrico:

Solo si el dispositivo tiene hardware biométrico y el usuario ha registrado sus datos biométricos, esto volverá a ser verdadero.

Hay buenas noticias acerca de iniciar sesión con datos biométricos y no tener que ingresar su contraseña. Está a solo dos pasos de ver un mensaje biométrico que lo ayudará a iniciar sesión más rápido.

En primer lugar, debe:

  • Establezca PromptInfo en el mensaje y la configuración deseados.
  • Use la actividad de llamadas y los controladores de devolución de llamadas para configurar las indicaciones biométricas.

Preparar PromptInfo

para abrir de nuevo BiometricUtil.kt y agrega la siguiente función:

Para generar el cuadro de diálogo y llenarlo con título, subtítulo y descripción, el código anterior usa una clase de constructor llamada BiometricPrompt.PromptInfo.Builder.

¿Tienes alguna idea de qué Permitir credencial de dispositivo ¿es para? Puede configurar alternativas alternativas para omitir la autenticación biométrica. Por ejemplo, cuando aparece el aviso biométrico, puede optar por usar el código de acceso/patrón existente del dispositivo o mostrar un botón de cancelación. Ambas alternativas están disponibles mediante BiometricPrompt.PromptInfo.Builder, que incluye varias rutinas integradas.

Si tu establezca allowDeviceCredential en verdaderoPara crear un botón específico que inicie el PIN, el código de acceso o la pantalla de bloqueo de patrón de su dispositivo como una forma adicional de autenticación de usuario, agregue setDeviceCredentialAllowed(true) al generador de diálogo.

allowDeviceCredential se establece en falso de forma predeterminada. En esta situación, se muestra un botón negativo o de cancelación en el aviso biométrico. Establece el texto del botón para cancelar con setNegativeButtonText(«Cancel»). Sin embargo, puede configurar cualquier texto, p. B. «Vete». :]

A continuación, se inicializa el indicador biométrico y un oyente gestiona las devoluciones de llamada a partir de la actividad de la persona que llama. La función initBiometricPrompt() lo hace posible. para BiometricUtil.ktagrega el siguiente código

La función anterior tiene tres propósitos:

  • Para procesar los eventos de devolución de llamada, construye un ejecutor.
  • Genera el objeto de devolución de llamada para recibir eventos de autenticación con resultado correcto o mensajes de error en estado de éxito, falla o error.
  • Finalmente, utiliza las referencias de actividad, ejecutor y devolución de llamada para crear un aviso biométrico. Estos tres parámetros se envían a la capa de la interfaz de usuario que muestra el indicador y maneja el éxito o el fracaso del inicio de sesión.

Para ver la indicación biométrica, repita los procedimientos anteriores. Para unir todo, agregue otra función BiometricUtil.kt:

Las dos primeras declaraciones en esta función se explican por sí mismas: simplemente llaman setBiometricPromptInfo() y initBiometricPrompt() con los argumentos enviados. Si no especifica un título, subtítulo o descripción, PromptInfo usa la configuración predeterminada de los parámetros.

La tercera declaración, por otro lado, es un poco confusa. Si CriptoObjeto está disponible, se usa junto con PromptInfo para autenticar el aviso biométrico.

Use la función a continuación en su inicio de sesión/inicio de sesión o antes de la pantalla de inicio para usar datos biométricos

Deja una respuesta

Tu dirección de correo electrónico no será publicada.