Открытие задачи BiometricPrompt android studio - PullRequest
1 голос
/ 29 мая 2020

У меня есть код, в котором я вызываю биометрию для проверки пароля, и в итоге он работает нормально, у меня всегда есть ожидаемые результаты, когда я запрашиваю, но в конечном итоге на моей консоли возникает ошибка, которую я хотел бы, чтобы вы разрешили, но я не нахожу его на месте.

Следуйте коду:

Ошибка:

java.lang.IllegalStateException: Must be called from main thread of fragment host
    at androidx.fragment.app.FragmentManagerImpl.ensureExecReady(FragmentManagerImpl.java:1668)
    at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1721)
    at androidx.fragment.app.FragmentManagerImpl.executePendingTransactions(FragmentManagerImpl.java:183)
    at androidx.biometric.BiometricPrompt.authenticateInternal(BiometricPrompt.java:749)
    at androidx.biometric.BiometricPrompt.authenticate(BiometricPrompt.java:658)
    at com.app.EntryPoint.showBiometricPrompt(EntryPoint.java:832)
    at ifractal.ManagingRequests$1.callback(ManagingRequests.java:156)
    at ifractal.ManagingRequests.itAllStartsHere(ManagingRequests.java:1598)
    at ifractal.JSBridge.query(JSBridge.java:35)
    at android.os.MessageQueue.nativePollOnce(Native Method)
    at android.os.MessageQueue.next(MessageQueue.java:326)
    at android.os.Looper.loop(Looper.java:165)
    at android.os.HandlerThread.run(HandlerThread.java:65)

public boolean showBiometricPrompt(String callback, String primeiro_acesso) {
    BiometricPrompt.PromptInfo promptInfo =
            new BiometricPrompt.PromptInfo.Builder()
                    .setTitle("Autenticação")
                    .setSubtitle("Realize o login usando sua biometria")
                    .setNegativeButtonText("Cancelar")
                    .build();

    BiometricPrompt biometricPrompt = new BiometricPrompt(EntryPoint.this,
            executor, new BiometricPrompt.AuthenticationCallback() {

        @Override
        public void onAuthenticationError(int errorCode, @NonNull CharSequence errString) {
            super.onAuthenticationError(errorCode, errString);
            asset.log("onAuthenticationError", "Error: " +errString);
            }
        }

        @Override
        public void onAuthenticationSucceeded(
                @NonNull BiometricPrompt.AuthenticationResult result) {
            super.onAuthenticationSucceeded(result);
            BiometricPrompt.CryptoObject authenticatedCryptoObject =
                    result.getCryptoObject();
        }

        @SuppressLint("WrongConstant")
        @Override
        public void onAuthenticationFailed() {
            super.onAuthenticationFailed();
            asset.log("onAuthenticationError", "Failed");
        }
    });
    biometricPrompt.authenticate(promptInfo);
    return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...