androidx BiometricPrompt 를 사용 하여 지문 검증 기능 실현

4220 단어 androidx지문 검증
androidsdk 버 전이 29 이상 이면 FingerprintManagerCompat 를 사용 하여 지문 검증 을 하면 폐기 되 고 FingerprintManagerCompat 의 사용 방법 은 여기 서 설명 하지 않 습 니 다.뼈 는 새로운 api 를 사용 하여 지문 검증 을 완성 해 야 한다.물론 BiometricPrompt 는 지문 검증 을 할 수 있 을 뿐만 아니 라 본 고 는 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 지문 검증 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기