In Android P, Google provides a easier way for developers to use biometric sensors to authenticate user identity: BiometricPrompt. However, it is only supported in latest Android. We create a compat library to take it to All Android 6.0+ devices.
My introduction in Chinese (中文介绍)
It looks like mostly a new FingerprintManager
which is added in Android 6.0 (M). Its literal meaning may be: not only fingerprints will be supported, but also other biometric sensors.
So if we use this API, it's easy to support other biometric sensors for authenticating, such as face identity.
To learn more, read BiometricPrompt Reference in Android Developers site.
BiometricPromptCompat is designed to make it compatible in old Android. Its interface is very close to the original BiometricPrompt
in order that we can keep a consistent UI in different Android.
Of course, in Android P or newer version, we will use original BiometricPrompt
API. Then we cannot guarantee the UI is completely consistent in different devices. Because ROM manufacturers will redesign in their own styles.
And we should realize that in Android M there is only fingerprint sensor to be supported. I am sorry that I have no plan to adapt thousands of ROMs' incompatible APIs.
- Platform SDK for Android P Preview (
android-p
) - Android Studio 3.1+
Include library in your app module:
dependencies {
implementation 'moe.feng.support.biometricprompt:library:1.0.1'
}
We recommend to learn FingerprintManager
or BiometricPrompt
before using this library. All you need to know will be found.
final BiometricPromptCompat biometricPrompt = new BiometricPromptCompat.Builder(context)
.setTitle("Title")
.setSubtitle("Subtitle")
.setDescription("Description: blablablablablablablablablablabla...")
.setNegativeButton("Use password", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(
context,
"You requested password.",
Toast.LENGTH_LONG).show();
}
})
.build();
biometricPrompt.authenticate(cancellationSignal, myCallback);
Tested successfully in Android 8.1 & P Preview.
Telegram: @fython
Apache License 2.0