Fingerprint Authentication Banner

In the age of technology, biometric authentication is becoming increasingly important. This article will walk you through using Reprint, a simple library that streamlines fingerprint authentication for Android devices. Forget about the complexity of different fingerprint APIs—Reprint has got you covered!

Why Choose Reprint?

Here’s why Reprint stands out in the realm of Android fingerprint authentication:

  • It eliminates the headache of dealing with various Fingerprint APIs, such as Imprint and Samsung Pass.
  • Reprint addresses undocumented bugs and idiosyncrasies present in underlying APIs.
  • It supports a broader range of Imprint devices compared to FingerprintManagerCompat from the androidx library.
  • Help messages are translated into over 80 locales to ensure global compatibility.
  • Optional RxJava interfaces for those who prefer a reactive programming approach.

Getting Started with Reprint

To start using Reprint in your project, you first need to initialize it. Follow these steps:

Step 1: Initialization

In your Application.onCreate, initialize Reprint with the following line:

Reprint.initialize(this);

This will prepare the necessary modules for use, including the Marshmallow module and the Samsung Pass module if included.

Step 2: Authenticate with Reprint

In your code, activate the fingerprint reader using:

Reprint.authenticate();

To turn off the reader before authentication completes, simply call:

Reprint.cancelAuthentication();

Understanding the Code with an Analogy

Think of using Reprint as a gatekeeper to a secret garden—only those with the correct key (fingerprint) can enter. When you call Reprint.authenticate();, it’s like sending the gatekeeper a message to check if someone is at the gate. If they are, the gatekeeper examines their key (the fingerprint) and decides whether to grant entry.

If the authentication is successful, the gatekeeper opens the gate—you see the garden! If it fails, the gatekeeper politely informs the visitor of the issue but keeps security tight.

Authentication Notification Methods

You have two options to get notified about authentication results:

1. RxJava Interface

If you include the reactive reprint library, you will get notified through an Observable. For example:

RxReprint.authenticate()
    .subscribe(result -> {
        switch (result.status) {
            case SUCCESS:
                showSuccess();
                break;
            case NONFATAL_FAILURE:
                showHelp(result.failureReason, result.errorMessage);
                break;
            case FATAL_FAILURE:
                showError(result.failureReason, result.errorMessage);
                break;
        }
    });

2. Traditional Callbacks

If you prefer not to use RxJava, you can achieve the same with traditional callbacks:

Reprint.authenticate(new AuthenticationListener() {
    public void onSuccess(int moduleTag) {
        showSuccess();
    }
    
    public void onFailure(AuthenticationFailureReason failureReason, boolean fatal,
                          CharSequence errorMessage, int moduleTag, int errorCode) {
        showError(failureReason, fatal, errorMessage, errorCode);
    }
});

Installation Steps

To add Reprint to your project, follow these steps:

Step 1: Add Jitpack to Your Gradle Repositories

repositories {
    maven { url "https://jitpack.io" }
}

Step 2: Add the Required Libraries

Add the following lines to your dependencies:

dependencies {
    compile 'com.github.ajalt.reprint:core:3.3.2@aar'  // Required
    compile 'com.github.ajalt.reprint:reprint_spass:3.3.2@aar'  // Optional
    compile 'com.github.ajalt.reprint:rxjava:3.3.2@aar'  // Optional
    compile 'com.github.ajalt.reprint:rxjava2:3.3.2@aar'  // Optional
}

Permissions Needed

Don’t forget to declare the necessary permissions in your AndroidManifest.xml:




 

Troubleshooting

If you encounter issues while implementing Reprint, consider the following troubleshooting ideas:

  • Ensure you have the necessary permissions declared in your manifest.
  • Check if the correct libraries are added to your build.gradle file.
  • Make sure the device supports fingerprint authentication.
  • If you’re using RxJava, verify that the subscriber is correctly set up to receive notifications.

For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.

Conclusion

At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

About the Author

Hemen Ashodia

Hemen Ashodia

Hemen has over 14+ years in data science, contributing to hundreds of ML projects. Hemen is founder of haveto.com and fxis.ai, which has been doing data science since 2015. He has worked with notable companies like Bitcoin.com, Tala, Johnson & Johnson, and AB InBev. He possesses hard-to-find expertise in artificial neural networks, deep learning, reinforcement learning, and generative adversarial networks. Proven track record of leading projects and teams for Fortune 500 companies and startups, delivering innovative and scalable solutions. Hemen has also worked for cruxbot that was later acquired by Intel, mainly for their machine learning development.

×