USE_FINGERPRINT está en desuso en el nivel de API 28

3 minutos de lectura

Avatar de usuario de JerabekJakub
JerabekJakub

Constante USE_FINGERPRINT era en desuso en el nivel de API 28 y deberíamos usar más genérico USE_BIOMETRIC que se ha agregado en el mismo nivel de API.

Intercambio estas constantes en mi Manifiesto y recibo un error al llamar FingerprintManagerCompat.from(context).isHardwareDetected().

El error es:

Falta el permiso requerido – USE_FINGERPRINT

Esto sucede debido a @RequiresPermission("android.permission.USE_FINGERPRINT") anotación en FingerprintManagerCompat en 28.0.0-rc3 soporte v4 lib.

¿Es esto algo que puedo ignorar y continuar usando un nuevo permiso?

  • has agregado <uses-permission android:name="android.permission.USE_FINGERPRINT"/> permiso en el archivo de manifiesto

    – Pregúntale a Nilesh

    17 de julio de 2018 a las 7:35


  • @NileshRathod No, como escribí, lo cambié por uno nuevo USE_BIOMETRIC.

    – Jerabek Jakub

    17 de julio de 2018 a las 7:38

  • creo que tienes que usar BiometricPrompt en lugar de usar FingerprintManagerCompat

    – manuelwaldner

    5 oct 2018 a las 10:33


  • ¿Encuentras una solución para eso? Este cambio conduce al bloqueo, al menos debería haber habido una precaución.

    – Amit

    16 de octubre de 2018 a las 1:11

  • Problema relacionado con el rastreador de Google: tematracker.google.com/issues/109826221 Lamentablemente no lo van a arreglar 🙁

    – algrid

    25 de diciembre de 2018 a las 9:51

avatar de usuario de mathew11
mateo11

Me he enfrentado al mismo problema, en mi humilde opinión, la respuesta corta es ignorar la desaprobación, siempre que solo desea admitir la autenticación de huellas dactilares en su aplicación.

Como se indica en el blog de desarrollo de googleya que la API 28 de Google presenta la nueva API de biometría, que simplifica todo el proceso de autenticación biométrica. Proporcionan un generador simple para el diálogo de autenticación. Además, también admiten la detección de rostros e iris; en mi humilde opinión, es solo cuestión de tiempo si desea admitirlo y probablemente valga la pena actualizarlo.

La única desventaja que he descubierto hasta ahora es que si desea verificar si, por ejemplo, el hardware de huellas dactilares está disponible, deberá iniciar el proceso de autenticación para verificar esto y esperar el devolución de llamada de error. En su lugar, la API de huellas dactilares en desuso proporciona métodos como isHardwareDetected() o hasEnrolledFingerprints() para este propósito. En este caso, probablemente tendría que rediseñar su aplicación, si confía en esta información. El motivo de la desaprobación de esos métodos es probablemente que solo admite huellas dactilares, por lo que no es una mala idea actualizarlo.

Google también ha proporcionado la compatible 'androidx.biometric:biometric:1.0.0-alpha02' versión para los dispositivos por debajo de API 28, parece que al importar esta dependencia, simplemente podría cambiar a USE_BIOMETRIC permiso sin modificar nada más en su aplicación; ya no le molestará la advertencia. Como solo está en etapa alfa, lo usaría con cuidado. Por lo tanto, siempre que no use nada de la API biométrica, también puede simplemente ignorar el problema y enfrentarlo nuevamente cuando desee admitir métodos de autenticación biométrica adicionales.

EDITAR: Ahora, se lanza la versión beta de la biblioteca de compatibilidad, 'androidx.biometric:biometric:1.0.0-beta01'. Para obtener más información sobre esto, Chequea aquí.

Ahora, la versión estable de la biblioteca de compatibilidad se lanzó el 18 de diciembre de 2019, ‘androidx.biometric:biometric:1.0.1’. Para más información sobre esto haga clic aquí.

  • Este es el tipo de respuesta de calidad que necesitamos más en el desbordamiento de pila. +100

    – jungledev

    18 de diciembre de 2018 a las 16:05


  • @jungledev En mi defensa, SO no me envió una notificación a la bandeja de entrada a la respuesta de Mathew11 ni a su comentario. Recibí una notificación solo después de una nueva respuesta del 16/8 y luego vi esta respuesta y tu comentario. :-/

    – Jerabek Jakub

    20 de agosto de 2019 a las 11:44

  • “1.0.0-beta02” ya disponible, todavía esperando la versión final.

    – sergio

    18/09/2019 a las 21:36

  • El 29 hay canAuthenticate desarrollador.android.com/reference/android/hardware/biometrics/…

    – Florián Walther

    8 de diciembre de 2019 a las 15:13

API de biometría proporciona constantes biométricas para el manejo de errores

override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
    super.onAuthenticationError(errorCode, errString)

    //The device does not have a biometric sensor.
    if (errorCode == BiometricPrompt.ERROR_HW_NOT_PRESENT){
      //Do something
    }
}

¿Ha sido útil esta solución?