지문을 검색 하는 중Scanning For Fingerprints

이제는 Xamarin Android 응용 프로그램을 준비 하 여 지문 인증을 사용 하는 방법을 살펴보았으므로 이제 FingerprintManager.Authenticate 메서드로 돌아가서 Android 6.0 지문 인증에서 그 자리에 대해 논의 하겠습니다.Now that we have seen how to prepare a Xamarin.Android application to use fingerprint authentication, let's return to the FingerprintManager.Authenticate method, and discuss its place in the Android 6.0 fingerprint authentication. 지문 인증에 대 한 워크플로에 대 한 간략 한 개요는 다음 목록에서 설명 합니다.A quick overview of the workflow for fingerprint authentication is described in this list:

  1. FingerprintManager.Authenticate를 호출 하 고 CryptoObjectFingerprintManager.AuthenticationCallback 인스턴스를 전달 합니다.Invoke FingerprintManager.Authenticate, passing a CryptoObject and a FingerprintManager.AuthenticationCallback instance. CryptoObject는 지문 인증 결과가 변조 되지 않았음을 확인 하는 데 사용 됩니다.The CryptoObject is used to ensure that the fingerprint authentication result was not tampered with.
  2. FingerprintManager 클래스의 하위 클래스입니다.Subclass the FingerprintManager.AuthenticationCallback class. 이 클래스의 인스턴스는 지문 인증이 시작 될 때 FingerprintManager에 제공 됩니다.An instance of this class will be provided to FingerprintManager when fingerprint authentication starts. 지문 스캐너가 완료 되 면이 클래스의 콜백 메서드 중 하나를 호출 합니다.When the fingerprint scanner is finished, it will invoke one of the callback methods on this class.
  3. UI를 업데이트 하는 코드를 작성 하 여 장치에서 지문 스캐너가 시작 되 고 사용자 조작이 대기 중임을 사용자에 게 알립니다.Write code to update the UI to let the user know that the device has started the fingerprint scanner and is waiting for user interaction.
  4. 지문 스캐너가 완료 되 면 Android는 이전 단계에서 제공 된 FingerprintManager.AuthenticationCallback 인스턴스에서 메서드를 호출 하 여 응용 프로그램에 결과를 반환 합니다.When the fingerprint scanner is done, Android will return results to the application by invoking a method on the FingerprintManager.AuthenticationCallback instance that was provided in the previous step.
  5. 응용 프로그램은 사용자에 게 지문 인증 결과를 알리고 적절 한 결과에 반응 하 게 됩니다.The application will inform the user of the fingerprint authentication results and react to the results as appropriate.

다음 코드 조각은 작업에서 지문을 검색 하기 시작 하는 메서드의 예입니다.The following code snippet is an example of a method in an Activity that will start scanning for fingerprints:

protected void FingerPrintAuthenticationExample()
{
    const int flags = 0; /* always zero (0) */

    // CryptoObjectHelper is described in the previous section.
    CryptoObjectHelper cryptoHelper = new CryptoObjectHelper();    
    
    // cancellationSignal can be used to manually stop the fingerprint scanner. 
    cancellationSignal = new Android.Support.V4.OS.CancellationSignal();
    
    FingerprintManagerCompat fingerprintManager = FingerprintManagerCompat.From(this);
    
    // AuthenticationCallback is a base class that will be covered later on in this guide.
    FingerprintManagerCompat.AuthenticationCallback authenticationCallback = new MyAuthCallbackSample(this);

    // Start the fingerprint scanner.
    fingerprintManager.Authenticate(cryptoHelper.BuildCryptoObject(), flags, cancellationSignal, authenticationCallback, null);
}

Authenticate 메서드의 각 매개 변수를 좀 더 자세히 살펴보겠습니다.Let's discuss each of these parameters in the Authenticate method in a bit more detail:

  • 첫 번째 매개 변수는 지문 스캔 결과를 인증 하는 데 도움이 되는 지문 스캐너가 사용할 암호화 개체입니다.The first parameter is a crypto object that the fingerprint scanner will use to help authenticate the results of a fingerprint scan. 이 개체는 null될 수 있으며,이 경우 응용 프로그램은 지문 결과를 훼손 하지 않은 것을 무조건 신뢰 해야 합니다.This object may be null, in which case the application has to blindly trust that nothing has tampered with the fingerprint results. CryptoObject를 인스턴스화하고 null이 아닌 FingerprintManager에 제공 하는 것이 좋습니다.It is recommended that a CryptoObject be instantiated and provided to the FingerprintManager rather than null. CryptObject를 만드는 방법에 대 한 자세한 내용은 Cipher에 따라 CryptoObject를 인스턴스화하는 방법을 설명 합니다.Creating a CryptObject will explain in detail how to instantiate a CryptoObject based on a Cipher.
  • 두 번째 매개 변수는 항상 0입니다.The second parameter is always zero. Android 설명서는이를 플래그 집합으로 식별 하 고 나중에 사용 하도록 예약 되어 있을 가능성이 높습니다.The Android documentation identifies this as set of flags and is most likely reserved for future use.
  • 세 번째 매개 변수인 cancellationSignal는 지문 스캐너를 끄고 현재 요청을 취소 하는 데 사용 되는 개체입니다.The third parameter, cancellationSignal is an object used to turn off the fingerprint scanner and cancel the current request. 이는 .NET framework의 형식이 아닌 Android CancellationSignal.This is an Android CancellationSignal, and not a type from the .NET framework.
  • 네 번째 매개 변수는 필수 이며 AuthenticationCallback 추상 클래스를 서브클래싱하는 클래스입니다.The fourth parameter is mandatory and is a class that subclasses the AuthenticationCallback abstract class. 이 클래스의 메서드는 FingerprintManager 완료 되 고 결과가 무엇 인지를 클라이언트에 알리기 위해 호출 됩니다.Methods on this class will be invoked to signal to clients when the FingerprintManager has finished and what the results are. AuthenticationCallback구현에 대 한 이해를 돕기 위해 많은 내용이 포함 되어 있습니다.As there is a lot to understand about implementing the AuthenticationCallback, it will be covered in it's own section.
  • 다섯 번째 매개 변수는 선택적 Handler 인스턴스입니다.The fifth parameter is an optional Handler instance. Handler 개체가 제공 되는 경우 FingerprintManager는 지문 하드웨어에서 메시지를 처리할 때 해당 개체의 Looper를 사용 합니다.If a Handler object is provided, the FingerprintManager will use the Looper from that object when processing the messages from the fingerprint hardware. 일반적으로 Handler를 제공 하지 않아도 되며, FingerprintManager는 응용 프로그램에서 Looper를 사용 합니다.Typically, one does not need to provide a Handler, the FingerprintManager will use the Looper from the application.

지문 검사 취소Cancelling a Fingerprint Scan

사용자 (또는 응용 프로그램)가 시작 된 후 지문 검색을 취소 해야 할 수도 있습니다.It might be necessary for the user (or the application) to cancel the fingerprint scan after it has been initiated. 이 경우 FingerprintManager.Authenticate 제공 된 CancellationSignal 에서 IsCancelled 메서드를 호출 하 여 지문 검사를 시작 합니다.In this situation, invoke the IsCancelled method on the CancellationSignal that was provided to FingerprintManager.Authenticate when it was invoked to start the fingerprint scan.

Authenticate 방법을 살펴보았으므로 이제 더 중요 한 몇 가지 매개 변수를 좀 더 자세히 살펴보겠습니다.Now that we have seen the Authenticate method, let's examine some of the more important parameters in more detail. 먼저 인증 콜백에 응답하 여 Android 응용 프로그램이 지문 스캐너에서 제공 하는 결과에 반응할 수 있도록 FingerprintManager 콜백을서브 클래스 하는 방법을 설명 합니다.First, we'll look at Responding to Authentication Callbacks, which will discuss how to subclass the FingerprintManager.AuthenticationCallback, enabling an Android application to react to the results provided by the fingerprint scanner.