솜은 코튼
[Android] 생체 인증, biometric authentication 본문
생체 인증 (지문, 얼굴 인식)
:Android 9.0에서 fingerprint가 deprecated되고 BiometricPrompt를 참조하라는 안내문이 기재되어 있습니다.
디바이스 내에 지문 혹은 얼굴 인식 정보가 등록되어 있어야 하며,
지문만 등록되어 있을 경우는 지문만, 모두 등록되어 있으면 선택할 수 있도록 알림창이 뜹니다.
※ 주의: FragmentActivity와 Fragment만 가능하며 Fragment를 생성 시 Activity가 아닌 AppCompatActivity에서 가능.
1. build.gradle
1
2
3
4
5
6
|
dependencies {
implementation fileTree(dir: 'libs', include: '*.jar')
// 생체 인증
implementation 'androidx.biometric:biometric:1.0.1'
}
|
cs |
2. AndroidManifest.xml
1
2
|
<!-- 생체 인증 권한 -->
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
|
cs |
3. BiometricPrompt 초기 셋팅
: 초기 설정 및 콜백 리스너 등록
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
private Executor executor;
private BiometricPrompt biometricPrompt;
private BiometricPrompt.PromptInfo promptInfo;
public void init(){
executor = ContextCompat.getMainExecutor(getApplicationContext());
biometricPrompt = new BiometricPrompt(BiometricManager.this,
executor, new BiometricPrompt.AuthenticationCallback() {
@Override
public void onAuthenticationError(int errorCode, @NonNull CharSequence errString) {
super.onAuthenticationError(errorCode, errString);
Toast.makeText(getApplicationContext(),
"Error", Toast.LENGTH_SHORT)
.show();
}
@Override
public void onAuthenticationSucceeded(@NonNull BiometricPrompt.AuthenticationResult result) {
super.onAuthenticationSucceeded(result);
Toast.makeText(getApplicationContext(),
"Succeeded", Toast.LENGTH_SHORT).show();
}
@Override
public void onAuthenticationFailed() {
super.onAuthenticationFailed();
Toast.makeText(getApplicationContext(), "nFailed",
Toast.LENGTH_SHORT)
.show();
}
});
promptInfo = new BiometricPrompt.PromptInfo.Builder()
.setTitle("생체 인증")
.setSubtitle("인증해주세요.")
.setNegativeButtonText("취소")
.setDeviceCredentialAllowed(false)
.build();
}
}
|
cs |
4. 생체 인증 시작
1
2
3
|
public void auth(){
biometricPrompt.authenticate(promptInfo);
}
|
cs |
5. 생체 인증 종료
1
2
3
|
public void cancel(){
biometricPrompt.cancelAuthentication();
}
|
cs |
'Android > Java' 카테고리의 다른 글
[Android] STT, Speech-To-Text (0) | 2021.01.20 |
---|---|
[Android] Android Studio Java Version 설정/Lambda expressions are not supported at language level '7' (0) | 2021.01.14 |
[Android] Microsoft MSAL 적용 방법 (0) | 2021.01.07 |
[Android] Android Studio Offline Mode 설정 (0) | 2021.01.07 |
[Android] Google Login API 적용 방법 (0) | 2021.01.05 |