5 passos para implementar a autenticação biométrica no Android

, Author

Tive recentemente a oportunidade de trabalhar com a nova funcionalidade BiometricPrompt API lançada pelo Google este ano. Enquanto o suporte à autenticação de impressão digital está disponível desde o Android 6.0, o novo BiometricPrompt promete mais precisão e um nível consistente de segurança em todos os dispositivos que rodam nossa aplicação.

Agregar autenticação biométrica implementada em uma aplicação andróide recentemente, pensei em destacar alguns dos passos básicos necessários para implementar esta funcionalidade em uma aplicação andróide.

Então vamos começar!

AndroidManifest.xml

Passo 2: Verifique se o dispositivo suporta autenticação biométrica

Especificamente, vamos verificar se as seguintes condições são cumpridas:

  • O dispositivo está rodando Android 6.0 ou superior
  • O dispositivo possui um sensor de impressão digital
  • O utilizador concedeu ao seu aplicativo permissão para aceder ao sensor de impressão digital.
  • O utilizador registou pelo menos uma impressão digital no seu dispositivo.

Podemos criar uma classe de utilização separada para verificar se as condições acima são cumpridas:

Passo 3: Mostrar o diálogo BiometricPrompt

Quando as condições acima são verificadas, podemos verificar se a versão androide no dispositivo é Android P. O diálogo BiometricPrompt só é suportado no Android P. Vamos dar uma olhada nisso primeiro.

Below code is to display a biometricPrompt dialog:

Usando o construtor BiometricPrompt nós podemos:

  • setTitle() – Definir o título a exibir (Obrigatório)
  • setSubtitle() – Definir o subtítulo a exibir (Opcional)
  • setDescription() – Definir a descrição a exibir(Opcional)
  • setNegativeButton() – Definir o texto para o botão negativo(Obrigatório). Você também deve fornecer uma instância do Executor e um ouvinte de clique para o botão negativo.

Note: Você não pode personalizar o ícone ou a mensagem de erro que são usados dentro do diálogo.

Um diálogo típico de BiometricPrompt

Passo 4: Manusear a autenticação Callback

Próximo usamos o BiometricPrompt.AuthenticationCallback para escutar os eventos de autenticação dos usuários. Ele inclui 4 métodos:

onAuthenticationSucceeded

Quando a impressão digital for correspondida com sucesso com uma das impressões digitais registradas no dispositivo, então esta rechamada será acionada. Um objeto AutenticaçãoResultado será passado a callback.

onAuthenticationFailed

Quando a impressão digital não corresponder a nenhuma das impressões digitais registradas no dispositivo, então esta callback será acionada.

onAuthenticationError

Quando um erro irrecuperável for encontrado e o processo de autenticação for concluído sem sucesso, então esta callback será acionada. A chamada de retorno é fornecida com um código de erro para identificar a causa do erro, juntamente com a mensagem de erro. Os diferentes tipos de códigos de erro que podem ocorrer são:

  • BIOMETRIC_ERROR_LOCKOUT – A operação foi cancelada porque a API foi bloqueada devido a muitas tentativas.
  • BIOMETRIC_ERROR_LOCKOUT_PERMANENT – A operação foi cancelada porque o BIOMETRIC_ERROR_LOCKOUT ocorreu demasiadas vezes.
  • BIOMETRIC_ERROR_NO_SPACE – A operação não pode ser concluída porque não há armazenamento suficiente para concluir a operação.
  • BIOMETRIC_ERROR_TIMEOUT – Timeout ocorre porque a solicitação atual está sendo executada há muito tempo.
  • BIOMETRIC_ERROR_UNABLE_TO_PROCESS – O sensor não foi capaz de processar a imagem atual.
  • BIOMETRIC_ERROR_USER_CANCELED – O usuário cancelou a operação.
  • BIOMETRIC_ERROR_VENDOR – Se existem condições que não se enquadram em uma das categorias acima.
  • BIOMETRIC_ERROR_NO_BIOMETRICS – O usuário não tem nenhuma biometria registrada no dispositivo.
  • BIOMETRIC_ERROR_CANCELED – A operação foi cancelada porque o sensor biométrico não está disponível.
  • BIOMETRIC_ERROR_HW_NOT_PRESENT – O dispositivo não tem um sensor biométrico.
  • BIOMETRIC_ERROR_HW_UNAVAILABLE – O hardware do dispositivo não está disponível.

onAuthenticationHelp

Este método é chamado quando ocorre um erro não fatal durante o processo de autenticação. A chamada de retorno será fornecida com um código de ajuda para identificar a causa do erro, juntamente com uma mensagem de ajuda. Os diferentes tipos de códigos de ajuda que podem ocorrer são:

  • BIOMETRIC_ACQUIRED_IMAGER_DIRTY – A imagem biométrica era muito ruidosa devido à suspeita de sujidade no sensor.
  • BIOMETRIC_ACQUIRED_INSUFFICIENT – A imagem biométrica era muito ruidosa para processar. Isto pode ser devido a uma variedade de razões mas geralmente é porque a imagem não era legível.
  • BIOMETRIC_ACQUIRED_PARTIAL – Apenas uma imagem biométrica parcial foi detectada.
  • BIOMETRIC_ACQUIRED_TOO_FAST – A imagem biométrica estava incompleta porque o utilizador moveu o dedo à volta do sensor demasiado depressa.
  • BIOMETRIC_ACQUIRED_TOO_SLOW – A imagem biométrica era ilegível devido à falta de movimento do utilizador em torno do sensor.
Callback Biométrico Personalizado classe

Se tiver um dispositivo Android P, então é isso!

Deixe uma resposta

O seu endereço de email não será publicado.