生物识别提示未显示面部解锁提示

时间:2020-01-13 06:58:01

标签: android

我正在尝试通过指纹以及面部解锁来验证我的应用程序,具体取决于用户已为其设备设置了身份验证。现在在我的应用程序中,我希望不显示面部解锁,为此我删除了指纹,但是我的设备支持Android 10.我知道可以选择显示什么内容,例如指纹或面部提示。如何检查我的应用是否支持面部解锁。 以下是我的实现

Gradle :
 implementation "androidx.biometric:biometric:1.0.1"

Code Implementation:

public class MainActivity extends AppCompatActivity {

    Button btnHello;
    Executor executor;
    BiometricPrompt.PromptInfo promptInfo;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        executor = ContextCompat.getMainExecutor(this);
        final BiometricPrompt biometricPrompt = new BiometricPrompt(MainActivity.this,
                executor, new BiometricPrompt.AuthenticationCallback() {
            @Override
            public void onAuthenticationError(int errorCode,
                                              @NonNull CharSequence errString) {
                super.onAuthenticationError(errorCode, errString);
                Toast.makeText(getApplicationContext(),
                        "Authentication error: " + errString, Toast.LENGTH_SHORT)
                        .show();
            }

            @Override
            public void onAuthenticationSucceeded(
                    @NonNull BiometricPrompt.AuthenticationResult result) {
                super.onAuthenticationSucceeded(result);
                Toast.makeText(getApplicationContext(),
                        "Authentication succeeded!", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onAuthenticationFailed() {
                super.onAuthenticationFailed();
                Toast.makeText(getApplicationContext(), "Authentication failed",
                        Toast.LENGTH_SHORT)
                        .show();
            }
        });

        promptInfo = new BiometricPrompt.PromptInfo.Builder()
                .setTitle("Biometric login for my app")
                .setSubtitle("Log in using your biometric credential")
                .setNegativeButtonText("Use account password")
                .build();

        // Prompt appears when user clicks "Log in".
        // Consider integrating with the keystore to unlock cryptographic operations,
        // if needed by your app.
        Button biometricLoginButton = findViewById(R.id.btnHello);
        biometricLoginButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                biometricPrompt.authenticate(promptInfo);
            }
        });
    }







}

2 个答案:

答案 0 :(得分:0)

n

答案 1 :(得分:0)

你真的不能(我认为)。您只能确定它是否支持生物识别实现,而不能确定它是哪一种(即您可以说它支持生物识别,但不能说它支持指纹或面部识别)。您可能看不到面部识别选项,因为您的设备无法通过面部 ID 进行 STRONG(相对于 WEAK)生物识别(例如,在三星上,指纹较强,但面部 ID 较弱)。