package com.amirarcane.lockscreen.fingerprint; /** * Created by Arcane on 7/11/2017. */ import android.Manifest; import android.annotation.TargetApi; import android.content.Context; import android.content.pm.PackageManager; import android.hardware.fingerprint.FingerprintManager; import android.os.Build; import android.os.CancellationSignal; import android.support.v4.app.ActivityCompat; @TargetApi(Build.VERSION_CODES.M) public class FingerprintHandler extends FingerprintManager.AuthenticationCallback { // You should use the CancellationSignal method whenever your app can no longer process user input, for example when your app goes // into the background. If you don’t use this method, then other apps will be unable to access the touch sensor, including the lockscreen!// private CancellationSignal cancellationSignal; private Context context; private FingerPrintListener mfingerPrintListener; public FingerprintHandler(Context mContext) { context = mContext; } //Implement the startAuth method, which is responsible for starting the fingerprint authentication process// public void startAuth(FingerprintManager manager, FingerprintManager.CryptoObject cryptoObject) { cancellationSignal = new CancellationSignal(); if (ActivityCompat.checkSelfPermission(context, Manifest.permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED) { return; } manager.authenticate(cryptoObject, cancellationSignal, 0, this, null); } public void setFingerPrintListener(FingerPrintListener mfingerPrintListener) { this.mfingerPrintListener = mfingerPrintListener; } @Override //onAuthenticationError is called when a fatal error has occurred. It provides the error code and error message as its parameters// public void onAuthenticationError(int errMsgId, CharSequence errString) { mfingerPrintListener.onError(errString); } @Override //onAuthenticationFailed is called when the fingerprint doesn’t match with any of the fingerprints registered on the device// public void onAuthenticationFailed() { mfingerPrintListener.onFailed(); } @Override //onAuthenticationHelp is called when a non-fatal error has occurred. This method provides additional information about the error, //so to provide the user with as much feedback as possible I’m incorporating this information into my toast// public void onAuthenticationHelp(int helpMsgId, CharSequence helpString) { mfingerPrintListener.onHelp(helpString); } @Override //onAuthenticationSucceeded is called when a fingerprint has been successfully matched to one of the fingerprints stored on the user’s device// public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) { mfingerPrintListener.onSuccess(); } }