본문 바로가기
안드로이드 자바

[JAVA][Android] 지문인식 기능 만들기

by teamnova 2023. 11. 30.
728x90

안녕하세요. 오늘은 안드로이드 지문 인식기능을 만들어 보도록하겠습니다.

지문인식의 경우 보안상 캡처와 영상녹화가 불가해 따로 등록하지 않겠습니다.

 

먼저 build.gradle(:app)의 dependencies에 아래 내용을 추가합니다.

implementation 'androidx.biometric:biometric:1.1.0'

그리고 매니페스트 파일에는 아래 내용을 추가합니다

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

이제 메인액티비티입니다.

public class MainActivity extends AppCompatActivity {
    private BiometricPrompt biometricPrompt;
    private BiometricPrompt.PromptInfo promptInfo;
    private Executor executor;
    Context context;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        context = this;
        executor = ContextCompat.getMainExecutor(this);
        BiometricPrompt.AuthenticationCallback callback = new BiometricPrompt.AuthenticationCallback() {
            @Override
            public void onAuthenticationError(int errorCode, @NonNull CharSequence errString) {
                super.onAuthenticationError(errorCode, errString);

            }

            @Override
            public void onAuthenticationSucceeded(
                    @NonNull BiometricPrompt.AuthenticationResult result) {
                super.onAuthenticationSucceeded(result);

                Toast.makeText(context,"지문인식에 성공하였습니다.",Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onAuthenticationFailed() {
                super.onAuthenticationFailed();
            }
        };
        biometricPrompt = new BiometricPrompt((FragmentActivity) context,executor,callback);

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

        biometricPrompt.authenticate(promptInfo);

    }

}

위와 같이 과정을 마쳤다면 앱이 실행되고 바로 지문 인식을 시작할겁니다.

biometricPrompt.authenticate(promptInfo);

위 코드가 지문 인식을 실행하는 코드입니다.