BiometricPromptCompat: не удалось проверить учетные данные устройства. Родительский обработчик не найден - PullRequest
0 голосов
/ 19 февраля 2020

Я реализовал отпечаток пальца Biometri c auth в моем проекте. Я установил резервный режим аутентификации на случай, если пользователь захочет использовать шаблон / пин / пароль, нажав кнопку «Использовать пароль». Я сделал это с помощью setDeviceCredentialAllowed (true), который работает в первый раз. Но всякий раз, когда я делаю это снова, экран шаблона / пин-кода / пароля больше не появляется. Я получаю следующий журнал в консоли logcat:

BiometricPromptCompat: не удалось проверить учетные данные устройства. Родительский обработчик не найден

Вот мой код для справки. Заранее спасибо.

executor = ContextCompat.getMainExecutor(this);
    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")
            .setDeviceCredentialAllowed(true)
            .setConfirmationRequired(true)
            .build();

    biometricPrompt.authenticate(promptInfo);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...