Cómo comprobar la compatibilidad del dispositivo para la autenticación de la huella dactilar en android
Estoy trabajando con la autenticación de la huella dactilar usando el api del androide 6.0. Mi requisito es, si el dispositivo actual es compatible con la autenticación de huella dactilar, entonces voy a ir a través de la autenticación de huella dactilar de otra manera se utilizará forma normal de iniciar sesión en la aplicación.
Así pues, cualquiera puede decirme, cómo comprobar la compatibilidad del dispositivo para la autentificación de la huella digital en androide.
- Escaneo de huellas dactilares con dispositivos Samsung
- API de huellas dactilares para el teléfono Android
- Samsung Pass (huella dactilar) SDK - no puede usar la contraseña como fallback en dispositivos Galaxy 6
- Cordova autenticación de huellas dactilares en el servidor
- El método FingerprintManagerCompat tuvo problemas con dispositivos Samsung
Gracias por adelantado.
- Error después de que la Fingerprint tocó los teléfonos Samsung: android.security.KeyStoreException: Usuario clave no autenticado
- Pase 1.1.3 - Proguard
- Uso del escáner de huellas dactilares de Android para su aplicación
- Escáner de huellas digitales Android M en Android Emulator
- ¿Cómo desarrollar una aplicación de Android con google maps API en varios equipos?
- Soporte de huellas dactilares Huawei P9 lite
- Android CryptoObject uso en huellas dactilares
- ¿Está soportada la huella digital en dispositivos Android?
Tienes que usar el método isHardwareDetected
en la clase FingerprintManager
.
Determine si el hardware de huella digital está presente y funcional. Devuelve true si el hardware está presente y funcional, false en caso contrario.
// Check if we're running on Android 6.0 (M) or higher if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //Fingerprint API only available on from Android 6.0 (M) FingerprintManager fingerprintManager = (FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE); if (!fingerprintManager.isHardwareDetected()) { // Device doesn't support fingerprint authentication } else if (!fingerprintManager.hasEnrolledFingerprints()) { // User hasn't enrolled any fingerprints to authenticate with } else { // Everything is ready for fingerprint authentication } }
No olvide agregar permiso para acceder a las funciones de huella dactilar en AndroidManifest:
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
Con la Biblioteca de Soporte
Si no desea comprobar Build.VERSION, también es posible comprobar en dispositivos inferiores a Android 6.0 con la biblioteca de soporte técnico
Añadir dependencia:
compile "com.android.support:support-v4:23.0.0"
Y utilizar la clase FingerprintManagerCompat
como esto:
FingerprintManagerCompat fingerprintManagerCompat = FingerprintManagerCompat.from(context); if (!fingerprintManagerCompat.isHardwareDetected()) { // Device doesn't support fingerprint authentication } else if (!fingerprintManagerCompat.hasEnrolledFingerprints()) { // User hasn't enrolled any fingerprints to authenticate with } else { // Everything is ready for fingerprint authentication }
Sólo un seguimiento a la respuesta de LaurentY. Necesita un permiso para acceder al escáner de huellas dactilares. Y para eso debes añadir esto a tu Manifiesto.
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
Este método funciona para todas las versiones de Android y también para obtener permiso
private boolean isSensorAvialable() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { return ActivityCompat.checkSelfPermission(AppContext, Manifest.permission.USE_FINGERPRINT) == PackageManager.PERMISSION_GRANTED && AppContext.getSystemService(FingerprintManager.class).isHardwareDetected(); } else { return FingerprintManagerCompat.from(AppContext).isHardwareDetected(); } }
- Usar putExtra para pasar valores al servicio de intenciones
- ¿Cómo puedo establecer el orden de los botones positivo y negativo en AlertDialog?