Top Android Biometric Authentication Libraries
Top Android Biometric Authentication Libraries.
Introduction
Biometric authentication refers to the process of verifying a person's identity based on their unique physical or behavioral characteristics. With the increasing popularity of mobile devices, many Android apps now support biometric authentication to enhance security and improve user experience.
In this tutorial, we will explore some of the top Android libraries available for implementing biometric authentication in your Android applications. We will discuss their features, installation process, and provide code usage examples where applicable.
1. BiometricPrompt API
The BiometricPrompt API was introduced in Android 9 (API level 28) as the standard way to implement biometric authentication. It provides a system-provided biometric prompt that securely authenticates the user using their fingerprint, face, or iris.
Features:
- Supports fingerprint, face, and iris authentication.
- Handles system-level events such as device credential enrollment, removal, or changes.
- Provides a consistent user experience across different devices and manufacturers.
Installation:
The BiometricPrompt API is part of the AndroidX Biometric library, which is available through the Google Maven repository. To use it, add the following dependency to your app's build.gradle file:
implementation 'androidx.biometric:biometric:1.2.0'
Usage Example (Kotlin):
val biometricPrompt = BiometricPrompt.Builder(context)
    .setTitle("Biometric Authentication")
    .setDescription("Use your fingerprint to authenticate")
    .setNegativeButton("Cancel", context.mainExecutor,
        DialogInterface.OnClickListener { dialog, which ->
            // Handle cancel event
        })
    .build()
val promptInfo = BiometricPrompt.PromptInfo.Builder()
    .setTitle("Biometric Authentication")
    .setDescription("Use your fingerprint to authenticate")
    .setNegativeButtonText("Cancel")
    .build()
biometricPrompt.authenticate(promptInfo)
2. FingerprintManager API
The FingerprintManager API was introduced in Android 6 (API level 23) and provides a way to authenticate users using their fingerprint.
Features:
- Supports fingerprint authentication.
- Provides backward compatibility for devices running Android Marshmallow (6.0) and above.
Installation:
The FingerprintManager API is part of the Android Support Library, which is no longer actively maintained. It is recommended to use the BiometricPrompt API instead. However, if you still need to support older devices, you can add the following dependency to your app's build.gradle file:
implementation 'com.android.support:appcompat-v7:28.0.0'
Usage Example (Java):
FingerprintManager fingerprintManager = (FingerprintManager) getSystemService(Context.FINGERPRINT_SERVICE);
if (fingerprintManager.isHardwareDetected()) {
    // Device supports fingerprint authentication
    if (fingerprintManager.hasEnrolledFingerprints()) {
        // At least one fingerprint is enrolled
        // Authenticate the user
    } else {
        // No fingerprints are enrolled, show a message to the user
    }
} else {
    // Device does not support fingerprint authentication
}
3. Samsung Pass SDK
The Samsung Pass SDK provides a comprehensive set of biometric authentication features for Samsung devices.
Features:
- Supports fingerprint, face, and iris authentication.
- Offers additional features such as secure storage and auto-fill functionality.
- Designed specifically for Samsung devices.
Installation:
To use the Samsung Pass SDK, you need to download and install the SDK from the Samsung Developers website. Refer to the official documentation for detailed installation instructions.
Usage Example (Java):
import com.samsung.android.sdk.pass.Spass;
Spass spass = new Spass();
if (spass.isFeatureEnabled(Spass.DEVICE_FINGERPRINT)) {
    // Device supports fingerprint authentication
    SpassFingerprint spassFingerprint = new SpassFingerprint(context);
    if (spassFingerprint.hasRegisteredFinger()) {
        // At least one fingerprint is registered
        // Authenticate the user
    } else {
        // No fingerprints are registered, show a message to the user
    }
} else {
    // Device does not support fingerprint authentication
}
Additional Libraries
Here are some additional Android libraries that you can explore for biometric authentication:
- Android Biometric Library by valartech: A simple library that wraps the BiometricPrompt API and provides a simplified usage.
- BiometricPromptCompat by veggie686: A compatibility library that allows you to use the BiometricPrompt API on devices running older versions of Android.
- FingerprintAuth by Jaely: A lightweight library for fingerprint authentication with support for both the FingerprintManager API and the BiometricPrompt API.
Please refer to the respective GitHub repositories for installation instructions and usage examples for these libraries.
Happy coding!