androidx BiometricPrompt 를 사용 하여 지문 검증 기능 실현
공식 api:https://developer.android.google.cn/reference/androidx/biometric/package-summary?hl=zh-cn
우선 가이드
implementation 'androidx.biometric:biometric:1.0.1'
그리고 그 구조 방법.
1.BiometricPrompt(@NonNull FragmentActivity fragmentActivity,
@NonNull Executor executor, @NonNull AuthenticationCallback callback)
2. BiometricPrompt(@NonNull Fragment fragment,
@NonNull Executor executor, @NonNull AuthenticationCallback callback)
두 구조 방법의 매개 변 수 는 기본적으로 일치 합 니 다.executor 안 에는 runnable 인터페이스 가 있 습 니 다.지문 조작 을 할 때마다 이 방법 을 되 돌려 줍 니 다.주의:AuthenticationCallback 방법 이 적용 되 려 면 runnable 에서 runnable 의 run 방법 을 실행 해 야 합 니 다.콜백 에는 세 가지 반전 방법 이 있 습 니 다.
1.onAuthenticationError(int errmsgId,CharSequence errString),지문 검증 오류 가 이 방법 을 호출 합 니 다.errmsgId 의 값 은 BiometricPrompt 의 상수 에 대응 합 니 다.
2.onAuthenticationSucceeded(@NonNull@NotNull BiometricPrompt.AuthenticationResult result)는 지문 검증 에 성공 한 후 호출 되 며,result.getAuthenticationType 을 통 해 검증 에 성공 한 방식 으로 매개 변수 유형 을 자체 적 으로 봅 니 다.
3.onAuthenticationFailed()인식 에 실 패 했 습 니 다.구체 적 인 호출 시 기 는 잘 모 릅 니 다.공식 문서 설명 을 참고 할 수 있다.
지문 검증 을 표시 하려 면 BiometricPrompt.PromptInfo 인자 가 필요 합 니 다.팝 업 창 을 열 어 표시 합 니 다.builder 방식 으로 초기 화 합 니 다.title,subTitle,description,NegativeButtonText 를 설정 할 수 있 습 니 다.용법 은 다음 과 같 습 니 다.
new BiometricPrompt.PromptInfo.Builder().setTitle("title")
.setSubtitle("subTitle")
.setDescription("description")
.setDeviceCredentialAllowed(false)
.setNegativeButtonText("button").build()
주의해 야 할 것 은 setDeviceCredential Allowed 와 setNegativeButtonText 는 하나만 존재 할 수 있 습 니 다.즉,setNegativeButtonText 는 비어 있 지 않 습 니 다.setDeviceCredential Allowed 는 false 여야 합 니 다.장치 가 지문 을 열 었 는 지 검증 하려 면 BiometricManager.from(context).canAuthenticate()=BiometricManager.BIOMETRIC성공 사례 방법;
코드 표시:
private BiometricPrompt biometricPrompt;
private void startFinger(){
biometricPrompt = new BiometricPrompt(this, new Executor() {
@Override
public void execute(Runnable command) {
command.run();
}
}, new FingerCallBack());
biometricPrompt.authenticate( new BiometricPrompt.PromptInfo.Builder().setTitle("title")
.setSubtitle("subTitle")
.setDescription("description")
.setDeviceCredentialAllowed(false)
.setNegativeButtonText("button").build());
}
private void cancelFinger() {
if (biometricPrompt != null) {
biometricPrompt.cancelAuthentication();
}
}
private class FingerCallBack extends BiometricPrompt.AuthenticationCallback {
@Override
public void onAuthenticationError(int errMsgId, CharSequence errString) {
super.onAuthenticationError(errMsgId, errString);
Log.e("fingers", "onAuthenticationError");
}
@Override
public void onAuthenticationSucceeded(@NonNull @NotNull BiometricPrompt.AuthenticationResult result) {
super.onAuthenticationSucceeded(result);
cancelFinger();
Log.e("fingers", " onAuthenticationSucceeded");
}
@Override
public void onAuthenticationFailed() {
super.onAuthenticationFailed();
Log.e("fingers", "onAuthenticationFailed ");
}
}
안 드 로 이 드 x BiometricPrompt 를 사용 하여 지문 검증 을 실현 하 는 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 안 드 로 이 드 x 지문 검증 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!