首页 > 解决方案 > 我想在生物特征认证成功后去一个新的布局

问题描述

   package com.example.fitness;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;

import androidx.biometric.BiometricPrompt;

import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import java.util.concurrent.Executor;

public class MainActivity extends AppCompatActivity {

    Button auth_button;
    TextView status;

    private BiometricPrompt biometricPrompt;
    private BiometricPrompt.PromptInfo promptInfo;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        auth_button = findViewById(R.id.btn2);
        status = findViewById(R.id.status);

        Executor 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(MainActivity.this,"Error:"+errString, 
                Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onAuthenticationSucceeded(@NonNull 
            BiometricPrompt.AuthenticationResult result) {
                super.onAuthenticationSucceeded(result);
                Toast.makeText(MainActivity.this,"Authorized", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onAuthenticationFailed() {
                super.onAuthenticationFailed();
                Toast.makeText(MainActivity.this,"failed to authorize", 
                Toast.LENGTH_SHORT).show();
            }
        });

        promptInfo = new BiometricPrompt.PromptInfo.Builder().setTitle("Biometric 
        Authorization").setSubtitle("login using Finger print")
                .setNegativeButtonText("Cancel").build();

        auth_button.setOnClickListener(v -> biometricPrompt.authenticate(promptInfo));



    }
}

如果身份验证成功,我希望该功能转到新布局。但是,每当我尝试将意图与循环语句一起使用时,代码都会中断并进入无限循环。我如何克服这个问题,使代码到达下一个布局,就像成功的身份验证一样。

标签: javaandroid

解决方案


推荐阅读