在API 28或更高版本中,不建议使用FingerprintManager。相反,应该使用BiometricPrompt API来进行生物识别授权。BiometricPrompt提供了更高层次的抽象,使得应用程序可以轻松地支持不同类型的生物识别,包括指纹识别,面容识别和虹膜识别。
以下是使用BiometricPrompt进行生物识别授权的代码示例:
private void showBiometricPromptDialog(View view) { BiometricPrompt.PromptInfo promptInfo = new BiometricPrompt.PromptInfo.Builder() .setTitle("Biometric Authentication") .setSubtitle("Login using your biometric credential") .setNegativeButtonText("Cancel") .setAllowedAuthenticators(BiometricManager.Authenticators.BIOMETRIC_STRONG) .build();
BiometricPrompt biometricPrompt = new BiometricPrompt(this, new BiometricPrompt.AuthenticationCallback() {
@Override
public void onAuthenticationSucceeded(@NonNull BiometricPrompt.AuthenticationResult result) {
// 标识生物认证成功
// 在此执行任何适当应用程序的动作
}
@Override
public void onAuthenticationError(int errorCode, CharSequence errString) {
super.onAuthenticationError(errorCode, errString);
// Todo 处理错误
}
@Override
public void onAuthenticationFailed() {
super.onAuthenticationFailed();
// Todo 处理验证失败的情况
}
});
biometricPrompt.authenticate(promptInfo);
}
在上述代码中,我们创建了