Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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:
- Richiamare
FingerprintManager.Authenticate
, passando unCryptoObject
oggetto e un'istanzaFingerprintManager.AuthenticationCallback
di . VieneCryptoObject
usato per assicurarsi che il risultato dell'autenticazione con impronta digitale non sia stato manomesso. - 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. - 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.
- Al termine dello scanner di impronte digitali, Android restituirà i risultati all'applicazione richiamando un metodo sull'istanza
FingerprintManager.AuthenticationCallback
fornita nel passaggio precedente. - 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'istanzaCryptoObject
FingerprintManager
a anziché null. La creazione di un oggetto CryptObject illustra in dettaglio come creare un'istanzaCryptoObject
di in base a un oggettoCipher
. - 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'oggettoFingerprintManager
è terminato e quali sono i risultati. Poiché c'è molto da comprendere sull'implementazione diAuthenticationCallback
, verrà trattato nella relativa sezione. - Il quinto parametro è un'istanza facoltativa
Handler
. Se viene fornito unHandler
oggetto ,FingerprintManager
verrà utilizzato daLooper
tale oggetto durante l'elaborazione dei messaggi dall'hardware dell'impronta digitale. In genere, non è necessario specificare unHandler
oggetto , FingerprintManager userà l'oggettoLooper
dall'applicazione.
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.