Leggere in inglese

Condividi tramite


Analisi delle impronte digitali

Ora che abbiamo visto come preparare un'applicazione Xamarin.Android per usare l'autenticazione con impronta digitale, torniamo al metodo e ne esaminiamo la FingerprintManager.Authenticate posizione nell'autenticazione con impronta digitale Android 6.0. Una rapida panoramica del flusso di lavoro per l'autenticazione con impronta digitale è descritta in questo elenco:

  1. Richiamare FingerprintManager.Authenticate, passando un CryptoObject oggetto e un'istanza FingerprintManager.AuthenticationCallback di . Viene CryptoObject usato per assicurarsi che il risultato dell'autenticazione con impronta digitale non sia stato manomesso.
  2. Sottoclasse la classe FingerprintManager.AuthenticationCallback . All'avvio dell'autenticazione tramite impronta digitale verrà fornita FingerprintManager un'istanza di questa classe. Al termine, lo scanner di impronte digitali richiamerà uno dei metodi di callback in questa classe.
  3. Scrivere il codice per aggiornare l'interfaccia utente per informare l'utente che il dispositivo ha avviato lo scanner di impronte digitali ed è in attesa dell'interazione dell'utente.
  4. Al termine dello scanner di impronte digitali, Android restituirà i risultati all'applicazione richiamando un metodo sull'istanza FingerprintManager.AuthenticationCallback fornita nel passaggio precedente.
  5. L'applicazione informerà l'utente dei risultati dell'autenticazione con impronta digitale e risponderà ai risultati in base alle esigenze.

Il frammento di codice seguente è un esempio di un metodo in un'attività che avvierà l'analisi delle impronte digitali:

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);
}

Esaminiamo ognuno di questi parametri nel Authenticate metodo in modo più dettagliato:

  • Il primo parametro è un oggetto crypto che verrà usato dallo scanner di impronte digitali per autenticare i risultati di un'analisi delle impronte digitali. Questo oggetto può essere null, nel qual caso l'applicazione deve considerare ciecamente che nulla ha manomesso i risultati dell'impronta digitale. È consigliabile creare un'istanza di e fornire un'istanza CryptoObjectFingerprintManager a anziché null. La creazione di un oggetto CryptObject illustra in dettaglio come creare un'istanza CryptoObject di in base a un oggetto Cipher.
  • Il secondo parametro è sempre zero. La documentazione di Android identifica questa impostazione come set di flag ed è molto probabilmente riservata per uso futuro.
  • Il terzo parametro, cancellationSignal è un oggetto usato per disattivare lo scanner di impronte digitali e annullare la richiesta corrente. Si tratta di un android CancellationSignal e non di un tipo di .NET Framework.
  • Il quarto parametro è obbligatorio ed è una classe che sottoclassa la AuthenticationCallback classe astratta. I metodi di questa classe verranno richiamati per segnalare ai client quando l'oggetto FingerprintManager è terminato e quali sono i risultati. Poiché c'è molto da comprendere sull'implementazione di AuthenticationCallback, verrà trattato nella relativa sezione.
  • Il quinto parametro è un'istanza facoltativa Handler . Se viene fornito un Handler oggetto , FingerprintManager verrà utilizzato da Looper tale oggetto durante l'elaborazione dei messaggi dall'hardware dell'impronta digitale. In genere, non è necessario specificare un Handleroggetto , FingerprintManager userà l'oggetto Looper dall'applicazione.

Annullamento di un'analisi delle impronte digitali

Potrebbe essere necessario per l'utente (o l'applicazione) annullare l'analisi delle impronte digitali dopo l'avvio. In questo caso, richiamare il IsCancelled metodo sull'oggetto CancellationSignal fornito a FingerprintManager.Authenticate quando è stato richiamato per avviare l'analisi dell'impronta digitale.

Ora che abbiamo visto il Authenticate metodo, esaminiamo alcuni dei parametri più importanti in modo più dettagliato. In primo luogo, si esaminerà Risposta ai callback di autenticazione, che illustrerà come sottoclassare FingerprintManager.AuthenticationCallback, consentendo a un'applicazione Android di reagire ai risultati forniti dallo scanner di impronte digitali.