1.话不多说直接上代码,创建FingerPrintUtil工具类
/**
* 指纹工具类
*/
public class FingerPrintUtil {
/**
* 指纹验证
*/
public static void checkFingerprint(Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {//当前系统版本大于等于9
// 构建对话框
BiometricPrompt biometricPrompt = new BiometricPrompt.Builder(activity)
.setTitle("指纹验证")
.setDescription("请验证指纹")
.setNegativeButton("取消", activity.getMainExecutor(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(activity, "取消验证", Toast.LENGTH_SHORT).show();
}
}).build();
// 指纹识别回调
BiometricPrompt.AuthenticationCallback authenticationCallback = new BiometricPrompt.AuthenticationCallback() {
@Override
public void onAuthenticationError(int errorCode, CharSequence errString) {
super.onAuthenticationError(errorCode, errString);
LogUtil.e("onAuthenticationError: errorCode = " + errorCode + ", errString = " + errString);
ToastUtil.ShowToast(errString.toString());
}
@Override
public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {//指纹识别成功
super.onAuthenticationSucceeded(result);
LogUtil.e("onAuthenticationSucceeded:"+result.toString());
ActivityUtil.finishActivity(activity);
ActivityUtil.startActivity(activity, ActivityMain.class);
}
@Override
public void onAuthenticationFailed() {
super.onAuthenticationFailed();
LogUtil.e("onAuthenticationFailed");
}
};
// 开始验证指纹
CancellationSignal cancellationSignal = new CancellationSignal();
biometricPrompt.authenticate(cancellationSignal, activity.getMainExecutor(), authenticationCallback);
}
}
2.页面中调用
FingerPrintUtil.checkFingerprint(Activity.this);//指纹认证