Biometric

Guia do usuário  Exemplo de código (link em inglês)
Faça a autenticação com biometria ou credenciais do dispositivo e execute operações criptográficas.
Atualização mais recente Versão estável atual Próximo candidato a lançamento Versão Beta Versão Alfa
24 de fevereiro de 2021 1.1.0 - - 1.2.0-alpha03

Declarar dependências

Para adicionar uma dependência a Biometric, adicione o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para ver mais informações.

Adicione as dependências dos artefatos necessários no arquivo build.gradle para seu app ou módulo:

Groovy

dependencies {
    // Java language implementation
    implementation "androidx.biometric:biometric:1.1.0"

    // Kotlin
    implementation "androidx.biometric:biometric-ktx:1.2.0-alpha03"
}

Kotlin

dependencies {
    // Java language implementation
    implementation("androidx.biometric:biometric:1.1.0")

    // Kotlin
    implementation("androidx.biometric:biometric:1.2.0-alpha03")
}

Para ver mais informações sobre dependências, consulte Adicionar dependências de compilação.

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas existentes nesta biblioteca antes de criar um novo. Adicione seu voto a um problema existente clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Versão 1.2.0

Versão 1.2.0-alpha03

24 de fevereiro de 2021

Lançamento de androidx.biometric:biometric:1.2.0-alpha03 e androidx.biometric:biometric-ktx:1.2.0-alpha03. A versão 1.2.0-alpha03 contém estas confirmações.

Mudanças na API

  • Adição de extensões de corrotinas de suspensão para CredentialAuthPrompt parecidas com as de outros tipos de AuthPrompt (I9ac70).

Versão 1.2.0-alpha02

27 de janeiro de 2021

Lançamento de androidx.biometric:biometric:1.2.0-alpha02 e androidx.biometric:biometric-ktx:1.2.0-alpha02. A versão 1.2.0-alpha02 contém estas confirmações.

Mudanças na API

  • Refatoração de alguns campos AuthPrompt que antes eram definidos por um builder em argumentos de método startAuthentication(...) (I18896, b/174098373).
  • Acréscimo de requisitos mínimos de nível de API para tipos AuthPrompt com compatibilidade limitada ou não compatíveis com versões mais antigas do Android (I18896).
  • Adição de métodos getter para todos os campos AuthPrompt definidos por um builder (I18896).
  • Acréscimo de extensões de corrotinas do Kotlin de suspensão para autenticação biométrica usando as APIs AuthPrompt. Essas funções retornarão AuthenticationResult diretamente em caso de sucesso ou gerarão uma exceção quando houver um erro ou uma falha (rejeição da credencial) (Iffc9e).

Correções de bugs

  • Correção de um problema em que o BiometricManager.canAuthenticate(int) às vezes retornava o código de status errado para um dispositivo com sensor de impressão digital no Android 10 (API de nível 29) (I72420, b/176921662).
  • Correção de um problema em que o BiometricManager.canAuthenticate(int) retornava o código de status errado para um dispositivo sem hardware biométrico, bem como sem PIN, padrão ou senha inscritos no Android 10 (API de nível 29) e em versões anteriores do SDK (I79b7d, b/174505824).
  • Correção de um vazamento de memória que ocorria quando BiometricPrompt era hospedado em um fragmento com ciclo de vida mais curto que a atividade associada a ele (I70864, b/167014923).

Versão 1.2.0-alpha01

2 de dezembro de 2020

Lançamento de androidx.biometric:biometric:1.2.0-alpha01 e androidx.biometric:biometric-ktx:1.2.0-alpha01. A versão 1.2.0-alpha01 contém estas confirmações.

Novos recursos

  • Introdução do módulo androidx.biometric:biometric-ktx, que adiciona APIs e extensões específicas do Kotlin sobre o androidx.biometric:biometric.

Mudanças na API

  • Adição de novas APIs AuthPrompt para criar uma BiometricPrompt e executar a autenticação. Essas APIs não exigem que a BiometricPrompt seja criada em um callback de ciclo de vida antecipado, como onCreate (I19022).
  • Adição de extensões Kotlin a Fragment e FragmentActivity para as novas APIs AuthPrompt (Iaf98c).

Versão 1.1.0

Versão 1.1.0

27 de janeiro de 2021

Lançamento de androidx.biometric:biometric:1.1.0. A versão 1.1.0 contém estas confirmações.

Principais mudanças desde a versão 1.0.0

  • Adição de compatibilidade com versões anteriores para novos recursos e atualizações de API de autenticação biométrica lançados no Android 11.
  • Redução significativa no tamanho da ocupação do app da biblioteca (de mais de 100 KB em alguns casos).
  • Remoção de várias fontes de vazamentos de memória causados anteriormente pela biblioteca.
  • Correção de falhas de verificação de classe que podiam afetar o desempenho nas versões mais antigas do Android.
  • Várias melhorias adicionais na estabilidade e no comportamento da biblioteca.

Versão 1.1.0-rc01

11 de novembro de 2020

androidx.biometric:biometric:1.1.0-rc01 é lançado. A versão 1.1.0-rc01 contém estas confirmações.

Correções de bugs

  • Correção de um problema em alguns dispositivos em que determinadas ações (autenticação, cancelamento etc.) às vezes geravam uma NullPointerException (b/151316421).
  • Correção de um problema em que alguns dispositivos Pixel informavam o status incorreto ao usar BiometricManager#canAuthenticate(int) para verificar a biometria de Classe 3 no Android 10 (b/170406186).

Versão 1.1.0-beta01

1º de outubro de 2020

androidx.biometric:biometric:1.1.0-beta01 é lançado. A versão 1.1.0-beta01 contém estas confirmações.

Novos recursos

  • Redução significativa do tamanho da ocupação do APK da biblioteca (em alguns casos, com mais de 100 KB compactados) ao substituir as animações da caixa de diálogo por recursos estáticos no Android 8.1 e versões anteriores (I4844e).
  • BiometricPrompt agora volta automaticamente à autenticação de credencial do dispositivo, se permitido, em todas as versões compatíveis do Android quando a autenticação biométrica está bloqueada (b/149579143).

Correções de bugs

  • Correção de um problema em que BiometricPrompt causava uma falha em alguns dispositivos Android 9 sem um sensor de impressão digital (b/151443237).
  • Correção de uma possível NullPointerException no FingerprintDialogFragment (b/142599311).
  • Correção de um problema em que o tipo CryptoObject incorreto era usado para uma invocação do método reflexivo no BiometricManager (b/165824669).
  • Correção de um problema em que BiometricPrompt era exibida novamente logo após ser dispensada, o que causava a dispensa automática da nova solicitação em alguns dispositivos Android 10 (b/157783075).
  • Correção de vazamentos de memória relacionados ao uso de FingerprintManagerCompat (b/165840273).
  • Correção de problemas com a IU da caixa de diálogo de impressão digital sendo ocultada ou exibida incorretamente em alguns dispositivos Android 9 (b/154868505, b/148350291).

Versão 1.1.0-alpha02

19 de agosto de 2020

androidx.biometric:biometric:1.1.0-alpha02 é lançado. A versão 1.1.0-alpha02 contém estas confirmações.

Novos recursos

  • O BiometricManager#canAuthenticate() agora pode retornar BIOMETRIC_STATUS_UNKNOWN para indicar que o usuário ainda pode conseguir fazer a autenticação, ou BIOMETRIC_ERROR_UNSUPPORTED para indicar que uma determinada combinação de autenticador não é compatível com o dispositivo.
  • O BiometricPrompt#authenticate() agora pode ser usado para autenticação de credenciais do dispositivo com um CryptoObject associado apenas no Android 11 (API de nível 30) e versões mais recentes.

Mudanças na API

Correções de bugs

  • Correção de vazamentos de memória relatados pelo LeakCanary em BiometricFragment e BiometricViewModel (b/144919472).
  • Garantia de que BiometricViewModel não chamará mais MutableLiveData#setValue() em uma linha de execução em segundo plano (b/159983244).
  • Correção de um problema em que o BiometricPrompt não estava gerenciando corretamente o bloqueio temporário em alguns níveis de API (9acfce9).
  • Correção de um problema em que BiometricPrompt retornava o código de erro incorreto para um dispositivo não protegido com uma credencial de bloqueio de tela em alguns níveis da API (b/148626482).
  • Correção de um problema em que BiometricManager e BiometricPrompt retornavam os códigos de erro incorretos para um dispositivo sem implementação de proteção de teclado em alguns níveis da API (891c6e0).

Versão 1.1.0-alpha01

24 de junho de 2020

androidx.biometric:biometric:1.1.0-alpha01 é lançado. A versão 1.1.0-alpha01 contém estas confirmações.

Novos recursos

  • Refatorada a implementação da biblioteca interna para resolver possíveis origens de vazamentos de memória e outros comportamentos indesejados:
    • Os fragmentos internos agora compartilham e mantêm dados usando um ViewModel que está vinculado ao ciclo de vida do aplicativo cliente.
    • A autenticação de credencial do dispositivo anterior ao Android 10 (API de nível 29) não inicia mais uma atividade transparente no aplicativo cliente.

Correções de bugs

  • Avisos de suspensão de uso relacionados ao uso de FingerprintManagerCompat (b/142967618).
  • Alteração de como os métodos de plataforma controlados pelo SDK são chamados para evitar problemas de verificação de classe em versões mais antigas do Android (94beb4b).
  • As dependências do Gradle que não fazem parte da API pública não são mais exportadas pela biblioteca (f289d9e).

Versão 1.0.1

Versão 1.0.1

18 de dezembro de 2019

androidx.biometric:biometric:1.0.1 é lançado. A versão 1.0.1 contém estas confirmações (link em inglês).

Correções de bugs

  • Extensão da solução alternativa de substituição de impressão digital já existente para a autenticação baseada em criptografia de fornecedores afetados conhecidos, apenas para a API 28 (b/143361271).
  • Correção de um problema em alguns dispositivos em que a caixa de diálogo de biometria era mostrada sob uma sobreposição do sistema (b/143230260).
  • Correção de vários problemas com setDeviceCredentialAllowed(true) (b/143091227, b/143097321, b/143653944).
  • Correção de um problema em algumas versões do Android em que onAuthenticationSuccess nem sempre era chamado após o usuário confirmar a credencial do dispositivo (b/145232806).
  • Correção de um problema em algumas versões do Android em que onAuthenticationError nem sempre era chamado quando o prompt era dispensado na rotação (b/145230042).
  • Correção de um problema em algumas versões do Android em que o prompt não era dispensado ao receber determinados códigos de erro (b/143683687).
  • Correção de uma possível NullPointerException em BiometricFragment (b/142599311).

Versão 1.0.0

Versão 1.0.0

7 de novembro de 2019

androidx.biometric:biometric:1.0.0 é lançado sem mudanças desde 1.0.0-rc02. A versão 1.0.0 contém estas confirmações (link em inglês).

Principais recursos de 1.0.0

  • Versão de compatibilidade das APIs BiometricPrompt e BiometricManager, conforme implementadas no Android 10, com compatibilidade total com o recurso para o Android 6.0 (API 23)
  • Gerenciamento de ciclo de vida integrado para BiometricPrompt em Fragment ou FragmentActivity
  • Processamento especial para dispositivos conhecidos por apresentarem incorretamente biometria fraca durante a autenticação baseada em criptografia

Versão 1.0.0-rc02

23 de outubro de 2019

androidx.biometric:biometric:1.0.0-rc02 é lançado. A versão 1.0.0-rc02 contém estas confirmações (link em inglês).

Correções de bugs

  • Adição de uma solução alternativa para determinados dispositivos que são conhecidos por fornecer incorretamente uma biometria fraca quando a autenticação baseada em criptografia é invocada nas versões 28 e 29 da API (b/142150327).

Versão 1.0.0-rc01

9 de outubro de 2019

androidx.biometric:biometric:1.0.0-rc01 é lançado. A versão 1.0.0-rc01 contém estas confirmações (link em inglês).

Correções de bugs

  • Correção de uma possível falha com FingerprintDialogFragment ao dispensá-la enquanto a tela estava girando (b/141356362).
  • Correção de um problema em que receber um AuthenticationResult nulo da API de framework podia causar uma falha (b/138862251).
  • Correção de falhas causadas por dispensa de BiometricPrompt depois de onSaveInstanceState() (b/138825362, b/140447194).

Versão 1.0.0-beta02

18 de setembro de 2019

androidx.biometric:biometric:1.0.0-beta02 é lançado. A versão 1.0.0-beta02 contém estas confirmações (link em inglês).

Correções de bugs

  • Correção de problemas de compatibilidade com credenciais de dispositivos na versão 1.0.0-beta01.
  • Dependências do Java 8 foram removidas e alternadas para o Java 7 (b/140508526).
  • FingerprintHelperFragment agora gera corretamente ERROR_HW_NOT_PRESENT quando nenhum hardware de impressão digital é detectado (b/140427586).

Versão 1.0.0-beta01

29 de agosto de 2019

androidx.biometric:biometric:1.0.0-beta01 é lançado. A versão 1.0.0-beta01 contém estas confirmações (link em inglês).

Novos recursos

Introduzimos um segundo construtor para BiometricPrompt que permite que ele seja hospedado em um Fragment (em oposição ao construtor existente, que requer um FragmentActivity).

Também estamos animados em trazer a seguinte funcionalidade do Android 10 para a biblioteca Biometric do AndroidX:

  1. BiometricManager#canAuthenticate
  2. BiometricPrompt.PromptInfo#setConfirmationRequired
  3. BiometricPrompt.PromptInfo#setDeviceCredentialAllowed

No Android 10, a biblioteca invocará os métodos correspondentes da API da plataforma. Em níveis mais antigos da API, a biblioteca simulará o comportamento.

Mudanças na API

  • Adição de construtor específico de fragmento para solicitação biométrica (b/131980596).
  • Consulte a seção "Novos recursos" acima.

Correções de bugs

  • Adição de compatibilidade para L+ com credencial do dispositivo BiometricPrompt.
  • Correção de BiometricPrompt para usar constantes de erro públicas (b/137788194).
  • Correção de NullPointerException em BiometricPrompt.onAttach() (b/136103103).
  • Mudança de comportamento para não permitir que o BiometricPrompt seja cancelado por um evento de toque fora do prompt (b/135684487).
  • Correção de falha de onAuthenticationError quando um valor de erro nulo é retornado no Kotlin (b/128350861).
  • FingerprintDialogFragment agora pode ser habilitado para estilo (b/127878106).
  • FingerprintDialog agora é rolável (b/126367887).
  • Correção de um bug em que a rotação da caixa de diálogo biométrica gera um IllegalStateException (b/124153656, b/123811924).
  • Correção do comportamento inconsistente nas APIs de nível 23 a 27 (b/124066957).
  • Correção de um problema em que a caixa de diálogo de login de impressão digital lia um texto incorreto usando o Talkback (b/123572331).

Versão 1.0.0-alpha04

3 de abril de 2019

Lançamento de androidx.biometric:biometric:1.0.0-alpha04. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).

Correções de bugs

  • Correção de fragmentos Biometric que não são limpos em todos os casos (b/121117380).
  • Correção de BiometricPrompt que permite apenas uma instância de BiometricPrompt.AuthenticationCallback (b/123857949).
  • Correção do comportamento de erro de BiometricPrompt, inconsistente entre o sistema e as versões compatíveis (b/123572326).
  • Correção do callback onAuthenticationError() com @NotNull errString que causa uma NullPointerException no momento da execução (b/123167217).
  • Correção do androidx.BiometricPrompt de falhas do botão Cancelar (b/122054485).
  • Correção do androidx.biometric.PromptInfo do título/descrição não modificado no Android P (b/122856773).

Versão 1.0.0-alpha03

17 de dezembro de 2018

Correções de bugs

  • Correção de problemas relacionados a fragmentos.
  • Nos dispositivos O e anteriores, os erros de bloqueio são retornados imediatamente, para manter a consistência com a versão P e posterior.