在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);
}
在上述代码中,我们创建了