본문 바로가기
모바일/Android

안드로이드 생체인식(지문)

by 죠부니 2023. 12. 18.
반응형

https://developer.android.com/training/sign-in/biometric-auth?hl=ko#java

 

생체 인식 인증 대화상자 표시  |  Android 개발자  |  Android Developers

생체 인식 인증 대화상자 표시 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 앱의 민감한 정보나 고급 콘텐츠를 보호하는 데는 얼굴 인식, 지문 인식 같은

developer.android.com

build.gradle

implementation 'androidx.biometric:biometric:1.1.0'

AndroidManifest.xml

<uses-permission android:name="android.permission.USE_BIOMETRIC"/>

 

****

androidx 이걸로 임포트

import androidx.biometric.BiometricPrompt;

 

private Executor executor;
private BiometricPrompt biometricPrompt;
private BiometricPrompt.PromptInfo promptInfo;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    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")
            .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.biometric_login);
    biometricLoginButton.setOnClickListener(view -> {
            biometricPrompt.authenticate(promptInfo);
    });
}

https://developer.android.com/reference/androidx/biometric/BiometricManager.Authenticators#BIOMETRIC_WEAK

 

BiometricManager.Authenticators  |  Android Developers

androidx.appsearch.builtintypes.properties

developer.android.com

promptInfo = new BiometricPrompt.PromptInfo.Builder()
        .setTitle("지문 인증")
        .setSubtitle("기기에 등록된 지문을 이용하여 지문을 인증해주세요.")
        .setAllowedAuthenticators(BIOMETRIC_WEAK)
        .setConfirmationRequired(false)
        .setNegativeButtonText("취소")
        .build();

 

해당되는 권한 체크해서 진행

반응형