Biometric

Autentica con credenciales biométricas o del dispositivo, y realiza operaciones criptográficas.
Actualización más reciente Versión estable Versión potencial Versión beta Versión alfa
21 de septiembre de 2022 1.1.0 - - 1.2.0-alpha05

Cómo declarar dependencias

Para agregar una dependencia en Biometric, debes agregar el repositorio Maven de Google a tu proyecto. Consulta el repositorio Maven de Google para obtener más información.

Agrega las dependencias de los artefactos que necesites en el archivo build.gradle de tu app o módulo:

Groovy

dependencies {
    // Java language implementation
    implementation "androidx.biometric:biometric:1.1.0"

    // Kotlin
    implementation "androidx.biometric:biometric-ktx:1.2.0-alpha05"
}

Kotlin

dependencies {
    // Java language implementation
    implementation("androidx.biometric:biometric:1.1.0")

    // Kotlin
    implementation("androidx.biometric:biometric:1.2.0-alpha05")
}

Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.

Comentarios

Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.

Crear un error nuevo

Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.

Versión 1.2.0

Versión 1.2.0-alpha05

21 de septiembre de 2022

Lanzamiento de androidx.biometric:biometric:1.2.0-alpha05 y androidx.biometric:biometric-ktx:1.2.0-alpha05. La versión 1.2.0-alpha05 contiene estas confirmaciones.

Cambios en la API

  • Se agregó compatibilidad con CryptoObject para android.security.identity.PresentationSession en Android 13 (C5f1ec, b/197965513).

Correcciones de errores

  • Se quitaron las variantes de recursos innecesarias para reducir el tamaño de la biblioteca (I3601e y b/220178553).
  • Se corrigió el problema relacionado con BiometricPrompt alojado en contextos que no eran de actividad (Ife255).

Versión 1.2.0-alpha04

17 de noviembre de 2021

Lanzamiento de androidx.biometric:biometric:1.2.0-alpha04 y androidx.biometric:biometric-ktx:1.2.0-alpha04. La versión 1.2.0-alpha04 contiene estas confirmaciones.

Nuevas funciones

  • Se mejoró la compatibilidad con BiometricPrompt para fragmentos alojados por contextos que no son de actividad. (I9312b)

Cambios en la API

Correcciones de errores

  • Se corrigió un problema en la API 29 por el que algunos dispositivos (incluidos los emuladores) recibían un error de cancelación cuando recurrían al PIN, al patrón o a la contraseña. Ten en cuenta que, para algunos dispositivos con nivel de API 29, esto puede causar que se le solicite al usuario el bloqueo de pantalla, incluso si hay datos biométricos disponibles e inscritos. (b/142740104)
  • Se corrigió un problema en la API 29 por el que los dispositivos sin hardware biométrico no recurrían correctamente al PIN, al patrón o a la contraseña. (b/170517889)

Versión 1.2.0-alpha03

24 de febrero de 2021

Lanzamiento de androidx.biometric:biometric:1.2.0-alpha03 y androidx.biometric:biometric-ktx:1.2.0-alpha03. La versión 1.2.0-alpha03 contiene estas confirmaciones.

Cambios en la API

  • Se agregaron extensiones de suspensión de corrutinas para CredentialAuthPrompt similares a las que existen para otros tipos de AuthPrompt. (I9ac70)

Versión 1.2.0-alpha02

27 de enero de 2021

Lanzamiento de androidx.biometric:biometric:1.2.0-alpha02 y androidx.biometric:biometric-ktx:1.2.0-alpha02. La versión 1.2.0-alpha02 contiene estas confirmaciones.

Cambios en la API

  • Se refactorizaron algunos campos AuthPrompt que se habían configurado previamente a través de un compilador en argumentos del método startAuthentication(...). (I18896, b/174098373)
  • Se agregaron requisitos mínimos de nivel de API para los tipos AuthPrompt con compatibilidad limitada o sin compatibilidad en versiones anteriores de Android. (I18896)
  • Se agregaron métodos get para todos los campos AuthPrompt que se establecieron a través de un compilador. (I18896)
  • Se agregaron extensiones de suspensión de Kotlin para la autenticación biométrica a través de las API de AuthPrompt. Estas funciones mostrarán el error AuthenticationResult directamente en caso de éxito o arrojarán una excepción cuando se produzca un error o falla (error de credencial). (Iffc9e)

Correcciones de errores

  • Se corrigió un problema por el cual BiometricManager.canAuthenticate(int) a veces mostraba el código de estado incorrecto para un dispositivo con un sensor de huellas dactilares en Android 10 (nivel de API 29). (I72420, b/176921662)
  • Se corrigió un problema por el cual BiometricManager.canAuthenticate(int) mostraba un código de estado incorrecto para un dispositivo sin hardware biométrico y sin PIN, patrón ni contraseña inscriptos en Android 10 (nivel de API 29) y versiones anteriores del SDK. (I79b7d, b/174505824)
  • Se corrigió una fuga de memoria que ocurría cuando BiometricPrompt se alojaba en un fragmento con un ciclo de vida más corto que su actividad asociada. (I70864, b/167014923)

Versión 1.2.0-alpha01

2 de diciembre de 2020

Lanzamiento de androidx.biometric:biometric:1.2.0-alpha01 y androidx.biometric:biometric-ktx:1.2.0-alpha01. La versión 1.2.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó el módulo androidx.biometric:biometric-ktx, que agrega extensiones y API específicas de Kotlin, además de androidx.biometric:biometric.

Cambios en la API

  • Se agregaron API nuevas de AuthPrompt para construir un objeto BiometricPrompt y realizar la autenticación. Estas API no requieren que BiometricPrompt se construya en una devolución de llamada de ciclo de vida temprana, como onCreate. (I19022)
  • Se agregaron extensiones de Kotlin a Fragment y FragmentActivity para las API nuevas de AuthPrompt. (Iaf98c)

Versión 1.1.0

Versión 1.1.0

27 de enero de 2021

Lanzamiento de androidx.biometric:biometric:1.1.0. La versión 1.1.0 contiene estas confirmaciones.

Cambios importantes desde la versión 1.0.0

  • Se agregó asistencia de retrocompatibilidad para nuevas funciones y actualizaciones de API de autenticación biométrica que se introdujeron en Android 11.
  • Se redujo significativamente la huella de tamaño de la app de biblioteca (en más de 100 KB, en algunos casos).
  • Se quitaron varias fuentes de fugas de memoria que ocasionaba previamente la biblioteca.
  • Se corrigieron fallas de verificación de clase que podrían afectar el rendimiento en versiones anteriores de Android.
  • Se implementaron varias mejoras adicionales en la estabilidad y el comportamiento de la biblioteca.

Versión 1.1.0-rc01

11 de noviembre de 2020

Lanzamiento de androidx.biometric:biometric:1.1.0-rc01. La versión 1.1.0-rc01 contiene estas confirmaciones.

Correcciones de errores

  • Se corrigió un problema relacionado con ciertas acciones (autenticación, cancelación, etc.) que a veces arrojaban NullPointerException en algunos dispositivos (b/151316421).
  • Se corrigió un problema relacionado con algunos dispositivos Pixel que informaban un estado incorrecto cuando se usaba BiometricManager#canAuthenticate(int) para buscar datos biométricos de Clase 3 en Android 10 (b/170406186).

Versión 1.1.0-beta01

1 de octubre de 2020

Lanzamiento de androidx.biometric:biometric:1.1.0-beta01. La versión 1.1.0-beta01 contiene estas confirmaciones.

Nuevas funciones

  • Se redujo significativamente el tamaño del APK de la biblioteca (más de 100 KB comprimida, en algunos casos) al reemplazar las animaciones de diálogo con elementos estáticos en Android 8.1 y versiones anteriores (I4844e).
  • Ahora BiometricPrompt vuelve automáticamente a la autenticación de credenciales de dispositivos (si se permite) en todas las versiones de Android compatibles cuando la autenticación biométrica está bloqueada (b/149579143).

Correcciones de errores

  • Se solucionó un problema por el que BiometricPrompt causaba una falla en algunos dispositivos Android 9 sin un sensor de huellas dactilares (b/151443237).
  • Se corrigió un posible NullPointerException en FingerprintDialogFragment. (b/167951429).
  • Se corrigió un error en el que se usaba el tipo incorrecto de CryptoObject para una invocación del método reflexivo en BiometricManager (b/165824669).
  • Se corrigió un problema por el que BiometricPrompt se volvía a mostrar poco después del descarte y provocaba que se descarte automáticamente la nueva solicitud en algunos dispositivos Android 10 (b/157783075).
  • Se corrigieron las fugas de memoria relacionadas con el uso de FingerprintManagerCompat (b/165840273).
  • Se corrigieron errores en los que la IU del diálogo de huellas dactilares se ocultaba o se mostraba de forma incorrecta en algunos dispositivos con Android 9 (b/154868505, b/148350291).

Versión 1.1.0-alpha02

19 de agosto de 2020

Lanzamiento de androidx.biometric:biometric:1.1.0-alpha02. La versión 1.1.0-alpha02 contiene estas confirmaciones.

Nuevas funciones

  • BiometricManager#canAuthenticate() ahora puede mostrar BIOMETRIC_STATUS_UNKNOWN para indicar que el usuario puede autenticarse, o bien BIOMETRIC_ERROR_UNSUPPORTED para indicar que el dispositivo no admite una combinación de autenticador determinada.
  • Ahora se puede usar BiometricPrompt#authenticate() para la autenticación de credenciales del dispositivo con un CryptoObject asociado, únicamente en Android 11 (nivel de API 30) y versiones posteriores.

Cambios en la API

Correcciones de errores

  • Se corrigieron las fugas de memoria informadas por LeakCanary en BiometricFragment y BiometricViewModel (b/144919472).
  • Corregimos BiometricViewModel para que ya no llame a MutableLiveData#setValue() desde un subproceso en segundo plano (b/159983244).
  • Se corrigió un problema en el que BiometricPrompt no administraba en forma correcta el bloqueo temporal en algunos niveles de API (9acfce9).
  • Se corrigió un problema por el cual BiometricPrompt mostraba el código de error incorrecto para un dispositivo que no estaba protegido con una credencial de bloqueo de pantalla en algunos niveles de API (b/148626482).
  • Se corrigió un problema en el que BiometricManager y BiometricPrompt mostraban los códigos de error incorrectos para un dispositivo sin implementación de bloqueo de teclado en algunos niveles de API (891c6e0).

Versión 1.1.0-alpha01

24 de junio de 2020

Lanzamiento de androidx.biometric:biometric:1.1.0-alpha01. La versión 1.1.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

  • Se refactorizó la implementación de la biblioteca interna para abordar posibles fuentes de fuga de memoria y otros comportamientos no deseados:
    • Los fragmentos internos ahora comparten y conservan datos mediante ViewModel que está vinculado al ciclo de vida de la aplicación del cliente.
    • La autenticación de credenciales de un dispositivo anterior a Android 10 (API nivel 29) ya no inicia una actividad transparente dentro de la aplicación cliente.

Correcciones de errores

  • Se resolvieron las advertencias de desuso relacionadas con FingerprintManagerCompat (b/142967618).
  • Se cambió la forma en la que se llaman los métodos de las plataformas protegidas por SDK para evitar problemas de verificación de clase en versiones anteriores de Android (94beb4b).
  • Las dependencias de Gradle que no forman parte de la API pública ya no se exportan a la biblioteca (f289d9e).

Versión 1.0.1

Versión 1.0.1

18 de diciembre de 2019

Lanzamiento de androidx.biometric:biometric:1.0.1. La versión 1.0.1 contiene estas confirmaciones.

Correcciones de errores

  • Se extendió la solución existente de resguardo de huellas dactilares para la autenticación basada en criptografìa a proveedores afectados conocidos y también se limitó al nivel de API 28 (b/143361271).
  • Se solucionó un problema en algunos dispositivos en los que se mostraba el diálogo biométrico en una superposición del sistema (b/143230260).
  • Se corrigieron varios problemas relacionados con setDeviceCredentialAllowed(true) (b/143091227, b/143097321, b/143653944).
  • Se solucionó un problema en algunas versiones de Android en las que no siempre se llamaba a onAuthenticationSuccess después de que el usuario confirmaba su credencial de dispositivo (b/145232806).
  • Se solucionó un problema en algunas versiones de Android en las que no siempre se llamaba a onAuthenticationError cuando el mensaje se descartaba durante la rotación (b/145230042).
  • Se solucionó un problema en algunas versiones de Android en las que no se descartaba el mensaje al recibir ciertos códigos de error (b/143683687).
  • Se corrigió un posible error de NullPointerException en BiometricFragment (b/142599311).

Versión 1.0.0

Versión 1.0.0

7 de noviembre de 2019

Lanzamiento de androidx.biometric:biometric:1.0.0 sin cambios desde 1.0.0-rc02. La versión 1.0.0 contiene estas confirmaciones.

Funciones principales de la versión 1.0.0

  • Versión de compatibilidad de las API de BiometricPrompt y BiometricManager, como se implementó en Android 10, con compatibilidad total con las funciones de Android 6.0 (API nivel 23)
  • Administración integrada del ciclo de vida de BiometricPrompt dentro de un Fragment o FragmentActivity
  • Procesamiento especial para dispositivos que presentan incorrectamente datos biométricos débiles durante la autenticación basada en criptografía

Versión 1.0.0-rc02

23 de octubre de 2019

Lanzamiento de androidx.biometric:biometric:1.0.0-rc02. La versión 1.0.0-rc02 contiene estas confirmaciones.

Correcciones de errores

  • Se agregó una solución alternativa para ciertos dispositivos que se sabe que proporcionan incorrectamente datos biométricos débiles cuando se invoca la autenticación basada en criptografìa en las versiones de API 28 y 29 (b/142150327).

Versión 1.0.0-rc01

9 de octubre de 2019

Lanzamiento de androidx.biometric:biometric:1.0.0-rc01. La versión 1.0.0-rc01 contiene estas confirmaciones.

Correcciones de errores

  • Se corrigió un posible bloqueo con el objeto FingerprintDialogFragment cuando se lo descartaba mientras se gira la pantalla (b/141356362).
  • Se solucionó un problema por el que la recepción de un objeto AuthenticationResult nulo en la API de Framework podía provocar un bloqueo (b/138862251).
  • Se corrigieron bloqueos causados por objetos BiometricPrompt que se descartaban después de onSaveInstanceState() (b/138825362, b/140447194).

Versión 1.0.0-beta02

18 de septiembre de 2019

Lanzamiento de androidx.biometric:biometric:1.0.0-beta02. La versión 1.0.0-beta02 contiene estas confirmaciones.

Correcciones de errores

  • Se corrigieron problemas relacionados con la compatibilidad de credenciales del dispositivo en la versión 1.0.0-beta01.
  • Se quitaron las dependencias de Java 8 y se cambió a Java 7 (b/140508526).
  • Ahora FingerprintHelperFragment arroja correctamente ERROR_HW_NOT_PRESENT cuando no se detecta hardware de huellas dactilares (b/140427586).

Versión 1.0.0-beta01

29 de agosto de 2019

Lanzamiento de androidx.biometric:biometric:1.0.0-beta01. La versión 1.0.0-beta01 contiene estas confirmaciones.

Nuevas funciones

Introdujimos un segundo constructor para BiometricPrompt que permite que se aloje en un objeto Fragment (a diferencia del constructor existente, que requiere un FragmentActivity).

También nos complace ofrecer la siguiente funcionalidad de Android 10 en la biblioteca biométrica de AndroidX:

  1. BiometricManager#canAuthenticate
  2. BiometricPrompt.PromptInfo#setConfirmationRequired
  3. BiometricPrompt.PromptInfo#setDeviceCredentialAllowed

En Android 10, la biblioteca invocará los métodos correspondientes desde la API de la plataforma. En niveles anteriores de la API, la biblioteca emulará el comportamiento.

Cambios en la API

  • Se agregó un constructor específico de fragmento para el mensaje biométrico (b/131980596).
  • Consulta la sección "Nuevas funciones" que aparece más arriba.

Correcciones de errores

  • Se agregó compatibilidad con las credenciales de dispositivo BiometricPrompt para L y versiones posteriores.
  • Se corrigió el mensaje biométrico para utilizar constantes de error públicas (b/137788194).
  • Se corrigió NullPointerException en BiometricPrompt.onAttach() (b/136103103).
  • Se modificó el comportamiento para no permitir que un evento táctil afuera del indicador cancele BiometricPrompt (b/135684487).
  • Se solucionó el error onAuthenticationError que se generaba cuando se mostraba un valor de error nulo en Kotlin (b/128350861).
  • FingerprintDialogFragment ahora admite estilos (b/127878106).
  • FingerprintDialog ahora es desplazable (b/126367887).
  • Se corrigió un error en el que la rotación del cuadro de diálogo biométrico generaba un IllegalStateException (b/124153656), (b/123811924).
  • Se corrigió un comportamiento incoherente en los niveles de API 23 a 27 (b/124066957).
  • Se solucionó el problema por el que el diálogo de acceso con huella dactilar leía texto incorrecto mediante TalkBack (b/123572331).

Versión 1.0.0-alpha04

3 de abril de 2019

Lanzamiento de androidx.biometric:biometric:1.0.0-alpha04. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.

Correcciones de errores

  • No se limpian todos los fragmentos de Biometric corregidos. (b/121117380).
  • Se corrigió BiometricPrompt que solo permite una instancia de BiometricPrompt.AuthenticationCallback (b/123857949).
  • Se corrigió un comportamiento de error BiometricPrompt incoherente entre las versiones de sistema y compatibilidad (b/123572326).
  • La devolución de llamada onAuthenticationError() con @NotNull errString provoca NullPointerException durante el tiempo de ejecución (b/123167217).
  • Se corrigió el bloqueo de androidx.BiometricPrompt con el botón Cancelar (b/122054485).
  • Se corrigió el problema en el que no cambiaba el título o la descripción de androidx.biometric.PromptInfo en Android P ( b/122856773 ).

Versión 1.0.0-alpha03

17 de diciembre de 2018

Correcciones de errores

  • Se corrigieron problemas relacionados con fragmentos.
  • En dispositivos con versión O y anteriores, los errores de bloqueo se muestran inmediatamente de modo que sean coherentes con la versión P y versiones posteriores.