Autenticação de impressão digital
Este guia discute como adicionar autenticação de impressão digital, introduzida no Android 6.0, a um aplicativo Xamarin.Android.
Visão geral da autenticação de impressão digital
A chegada dos scanners de impressões digitais em dispositivos Android fornece aos aplicativos uma alternativa ao método tradicional de autenticação de usuário/senha. O uso de impressões digitais para autenticar um usuário possibilita que um aplicativo incorpore segurança menos intrusiva do que um nome de usuário e senha.
As APIs do FingerprintManager destinam-se a dispositivos com um scanner de impressão digital e estão executando o nível de API 23 (Android 6.0) ou superior. As APIs são encontradas no Android.Hardware.Fingerprints
namespace. A Biblioteca de Suporte do Android v4 fornece versões das APIs de impressão digital destinadas a versões mais antigas do Android. As APIs de compatibilidade são encontradas no Android.Support.v4.Hardware.Fingerprint
namespace, são distribuídas por meio do pacote NuGet Xamarin.Android.Support.v4.
O FingerprintManager (e seu equivalente da Biblioteca de Suporte, FingerprintManagerCompat) é a classe principal para usar o hardware de digitalização de impressão digital. Essa classe é um wrapper do SDK do Android em torno do serviço de nível de sistema que gerencia as interações com o próprio hardware. Ele é responsável por iniciar o scanner de impressão digital e por responder ao feedback do scanner. Esta classe tem uma interface bastante simples com apenas três membros:
Authenticate
– Este método irá inicializar o scanner de hardware e iniciar o serviço em segundo plano, esperando que o usuário digitalize sua impressão digital.EnrolledFingerprints
– Esta propriedade retornarátrue
se o usuário tiver registrado uma ou mais impressões digitais com o dispositivo.HardwareDetected
– Esta propriedade é usada para determinar se o dispositivo suporta digitalização de impressão digital.
O FingerprintManager.Authenticate
método é usado por um aplicativo Android para iniciar o scanner de impressão digital. O trecho a seguir é um exemplo de como invocá-lo usando as APIs de compatibilidade da Biblioteca de Suporte:
// context is any Android.Content.Context instance, typically the Activity
FingerprintManagerCompat fingerprintManager = FingerprintManagerCompat.From(context);
fingerprintManager.Authenticate(FingerprintManager.CryptoObject crypto,
int flags,
CancellationSignal cancel,
FingerprintManagerCompat.AuthenticationCallback callback,
Handler handler
);
Este guia discutirá como usar as FingerprintManager
APIs para aprimorar um aplicativo Android com autenticação de impressão digital. Ele abordará como instanciar e criar um CryptoObject
para ajudar a proteger os resultados do scanner de impressão digital. Examinaremos como um aplicativo deve subclassificar FingerprintManager.AuthenticationCallback
e responder aos comentários do scanner de impressão digital. Finalmente, veremos como registrar uma impressão digital em um dispositivo Android ou emulador e como usar o adb para simular uma varredura de impressão digital.
Requisitos
A autenticação por impressão digital requer Android 6.0 (API nível 23) ou superior e um dispositivo com um scanner de impressão digital.
Uma impressão digital já deve estar registrada no dispositivo para cada usuário a ser autenticado. Isso envolve a configuração de um bloqueio de tela que usa uma senha, PIN, padrão de passar o dedo ou reconhecimento facial. É possível simular algumas das funcionalidades de autenticação de impressão digital em um emulador Android. Para obter mais informações sobre esses dois tópicos, consulte a seção Registrando uma impressão digital .