Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
fython committed Oct 11, 2018
1 parent 800db08 commit 49571c9
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 70 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,6 @@
/build
/captures
.externalNativeBuild
.settings
.project
.classpath
82 changes: 82 additions & 0 deletions INTRODUCTION.md
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

[![Download](https://api.bintray.com/packages/fython/BiometricPromptCompat/library/images/download.svg)](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

![](./screenshots/Android-O.png)

### Android P Preview

![](./screenshots/Android-P.png)

## Contact author

Telegram: [@fython](https://t.me/fython)

## License

Apache License 2.0
74 changes: 4 additions & 70 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,77 +1,11 @@
BiometricPromptCompat
BiometricPromptCompat (Deprecated)
====

> 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.
Since Google's compat library for `BiometricPrompt` was released, I marked this project as deprecated.

[My introduction in Chinese (中文介绍)](https://feng.moe/archives/33/)
You can get `androidx.biometric:biometric` dependency information here: [https://mvnrepository.com/artifact/androidx.biometric/biometric](https://mvnrepository.com/artifact/androidx.biometric/biometric)

## 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

[![Download](https://api.bintray.com/packages/fython/BiometricPromptCompat/library/images/download.svg)](https://bintray.com/fython/BiometricPromptCompat/library/_latestVersion)

Include library in your app module:

```groovy
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.

```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

![](./screenshots/Android-O.png)

### Android P Preview

![](./screenshots/Android-P.png)
If you want to continue on this library, you can start from here: [Introduction](./INTRODUCTION.md)

## Contact author

Expand Down

0 comments on commit 49571c9

Please sign in to comment.