forked from fython/BiometricPromptCompat
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
89 additions
and
70 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,3 +6,6 @@ | |
/build | ||
/captures | ||
.externalNativeBuild | ||
.settings | ||
.project | ||
.classpath |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
BiometricPromptCompat | ||
==== | ||
|
||
> 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 (中文介绍)](https://feng.moe/archives/33/) | ||
|
||
## Introduction | ||
|
||
#### What is `BiometricPrompt`? | ||
|
||
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](https://developer.android.com/reference/android/hardware/biometrics/BiometricPrompt) in Android Developers site. | ||
|
||
#### How to use it in old devices? | ||
|
||
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. | ||
|
||
## Requirements | ||
|
||
- Platform SDK for Android P Preview (`android-p`) | ||
- Android Studio 3.1+ | ||
|
||
## Samples | ||
|
||
[](https://bintray.com/fython/BiometricPromptCompat/library/_latestVersion) | ||
|
||
Include library in your app module: | ||
|
||
```groovy | ||
dependencies { | ||
implementation 'moe.feng.support.biometricprompt:library:1.0.2' | ||
} | ||
``` | ||
|
||
We recommend to learn `FingerprintManager` or `BiometricPrompt` before using this library. All you need to know will be found. | ||
|
||
```java | ||
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); | ||
``` | ||
|
||
## Test & Screenshots | ||
|
||
Tested successfully in Android 8.1 & P Preview. | ||
|
||
### Android 8.1 | ||
|
||
 | ||
|
||
### Android P Preview | ||
|
||
 | ||
|
||
## Contact author | ||
|
||
Telegram: [@fython](https://t.me/fython) | ||
|
||
## License | ||
|
||
Apache License 2.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters