Google 致力于为黑人社区推动种族平等。查看具体举措

Biometric

通过生物识别特征或设备凭据进行身份验证,以及执行加密操作。
最近更新时间 当前稳定版 下一候选版本 Beta 版 Alpha 版
2020 年 11 月 11 日 1.0.1 1.1.0-rc01 - -

声明依赖项

如需添加 Biometric 的依赖项,您必须将 Google Maven 代码库添加到项目中。如需了解详情,请参阅 Google 的 Maven 代码库

在应用或模块的 build.gradle 文件中添加所需工件的依赖项:

    dependencies {
        implementation "androidx.biometric:biometric:1.0.1"
      }
    

如需详细了解依赖项,请参阅添加构建依赖项

反馈

您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对库的改进有某些建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击加注星标按钮,为现有问题投票。

创建新问题

如需了解详情,请参阅问题跟踪器文档

版本 1.1.0

版本 1.1.0-rc01

2020 年 11 月 11 日

发布了 androidx.biometric:biometric:1.1.0-rc01版本 1.1.0-rc01 中包含这些提交内容

问题修复

  • 修复了在某些设备上执行特定操作(进行身份验证、取消等操作)时有时会抛出 NullPointerException 的问题。(b/151316421)
  • 修复了在 Android 10 上使用 BiometricManager#canAuthenticate(int) 检查 3 类生物识别时某些 Pixel 设备会报错状态的问题。(b/170406186)

版本 1.1.0-beta01

2020 年 10 月 1 日

发布了 androidx.biometric:biometric:1.1.0-beta01版本 1.1.0-beta01 中包含这些提交内容

新功能

  • 在 Android 8.1 及更低版本上,使用静态资产替换对话框动画,大大降低了库的 APK 占用空间(在某些情况下,可压缩出超过 100 KB 的空间)。(I4844e)
  • 现在,如果生物识别身份验证工作流被锁定,BiometricPrompt 会在所有受支持的 Android 版本中自动回退到设备凭据身份验证工作流(如果允许)。(b/149579143)

问题修复

  • 修复了以下问题:在某些没有指纹传感器的 Android 9 设备上,BiometricPrompt 会导致崩溃。(b/151443237)
  • 修复了 FingerprintDialogFragment 中的潜在 NullPointerException 问题。(b/167951429)
  • 修复了为 BiometricManager 中的反射方法调用使用错误的 CryptoObject 类型的问题。(b/165824669)
  • 修复了以下问题:在某些 Android 10 设备上,关闭后立即再次显示 BiometricPrompt 会自动产生需要关闭的新提示。(b/157783075)
  • 修复了与使用 FingerprintManagerCompat 相关的内存泄漏问题。(b/165840273)
  • 修复了以下问题:在某些 Android 9 设备上,指纹对话框界面不显示或显示不正确。(b/154868505b/148350291

版本 1.1.0-alpha02

2020 年 8 月 19 日

发布了 androidx.biometric:biometric:1.1.0-alpha02版本 1.1.0-alpha02 中包含这些提交内容

新功能

  • BiometricManager#canAuthenticate() 现已可以返回 BIOMETRIC_STATUS_UNKNOWN 以指示用户也许仍然可以进行身份验证,或返回 BIOMETRIC_ERROR_UNSUPPORTED 以指示相应设备不支持某身份验证器组合。
  • BiometricPrompt#authenticate() 目前仅在 Android 11(API 级别 30)及更高版本上可与相关联的 CryptoObject 用于设备凭据身份验证。

API 变更

问题修复

  • 修复了 LeakCanary 在 BiometricFragmentBiometricViewModel 中报告的内存泄漏问题。(b/144919472)
  • 确保了 BiometricViewModel 不再从后台线程调用 MutableLiveData#setValue()。(b/159983244)
  • 修复了 BiometricPrompt 无法在某些 API 级别正确处理临时锁定的问题。(9acfce9)
  • 修复了 BiometricPrompt 在未使用屏幕锁定凭据的某些 API 级别的设备上返回的错误代码不正确的问题。(b/148626482)
  • 修复了对于在某些 API 级别上未实现锁屏功能的设备,BiometricManagerBiometricPrompt 会返回错误的错误代码的问题。(891c6e0)

版本 1.1.0-alpha01

2020 年 6 月 24 日

发布了 androidx.biometric:biometric:1.1.0-alpha01版本 1.1.0-alpha01 中包含这些提交内容

新功能

  • 重构了内部库实现,以解决潜在的内存泄漏和其他意外行为的来源:
    • 内部 Fragment 现在使用与客户端应用的 Activity 生命周期相关联的 ViewModel 来共享和保留数据。
    • Android 10(API 级别 29)之前的设备凭据身份验证不会再在客户端应用中启动透明 Activity。

问题修复

  • 解决了与使用 FingerprintManagerCompat 有关的弃用警告。(b/142967618)
  • 更改了受 SDK 控制的平台方法的调用方式,以避免旧版 Android 系统中出现的类验证问题。(94beb4b)
  • 库不再导出不属于公共 API 的 Gradle 依赖项。(f289d9e)

版本 1.0.1

版本 1.0.1

2019 年 12 月 18 日

发布了 androidx.biometric:biometric:1.0.1版本 1.0.1 中包含这些提交内容

问题修复

  • 将基于加密的身份验证的现有指纹后备解决方案的适用范围扩大到已知受影响的供应商,但同时仍将其限制在 API 28 (b/143361271)
  • 修复了特定设备上生物识别对话框显示在系统叠加层下方的问题 (b/143230260)
  • 修复了几个与 setDeviceCredentialAllowed(true) 有关的问题(b/143091227b/143097321b/143653944
  • 修复了特定 Android 版本中的以下问题:在用户确认其设备凭据后,并不总是会调用 onAuthenticationSuccess (b/145232806)
  • 修复了特定 Android 版本中的以下问题:当系统关闭旋转提示时,并不总是会调用 onAuthenticationError (b/145230042)
  • 修复了特定 Android 版本中的以下问题:在收到某些错误代码时,系统不会关闭提示 (b/143683687)
  • 修复了 BiometricFragment 中的潜在 NullPointerException 问题 (b/142599311)

版本 1.0.0

版本 1.0.0

2019 年 11 月 7 日

发布了 androidx.biometric:biometric:1.0.0,该版本与 1.0.0-rc02 相比没有变化。版本 1.0.0 中包含这些提交内容

1.0.0 的主要功能

  • 已在 Android 10 中实现的 BiometricPromptBiometricManager API 兼容性版本,可向后兼容 Android 6.0 的全部功能 (API 23)
  • FragmentFragmentActivity 中为 BiometricPrompt 内置生命周期管理功能
  • 对已知在基于加密的身份验证期间呈现错误的弱生物识别特性的设备进行特殊处理

版本 1.0.0-rc02

2019 年 10 月 23 日

发布了 androidx.biometric:biometric:1.0.0-rc02版本 1.0.0-rc02 中包含这些提交内容

问题修复

  • 针对以下设备添加了一种解决方案:已知在 API 版本 28 和 29 上调用基于加密的身份验证时会提供错误的弱生物识别特性的设备 (b/142150327)

版本 1.0.0-rc01

2019 年 10 月 9 日

发布了 androidx.biometric:biometric:1.0.0-rc01版本 1.0.0-rc01 中包含这些提交内容

问题修复

  • 修复了在屏幕旋转时关闭 FingerprintDialogFragment 可能会导致崩溃的问题 (b/141356362)
  • 修复了从框架 API 接收 null AuthenticationResult 可能会导致崩溃的问题 (b/138862251)
  • 修复了在 onSaveInstanceState() 之后关闭 BiometricPrompt 导致的崩溃问题 (b/138825362b/140447194

版本 1.0.0-beta02

2019 年 9 月 18 日

发布了 androidx.biometric:biometric:1.0.0-beta02版本 1.0.0-beta02 中包含这些提交内容

问题修复

  • 解决了版本 1.0.0-beta01 中的设备凭据支持问题
  • 移除了 Java 8 依赖项,并切换为依赖于 Java 7 (b/140508526)
  • 现在,在未检测到指纹硬件的情况下,FingerprintHelperFragment 会正确抛出 ERROR_HW_NOT_PRESENT (b/140427586)

版本 1.0.0-beta01

2019 年 8 月 29 日

发布了 androidx.biometric:biometric:1.0.0-beta01版本 1.0.0-beta01 中包含这些提交内容

新功能

我们已为 BiometricPrompt 引入了第二个构造函数,允许将它托管在 Fragment 中(相反,现有构造函数需要 FragmentActivity)。

此外,我们还将下列功能从 Android 10 引入到了 AndroidX Biometric 库中:

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

在 Android 10 上,该库将从平台 API 调用对应的方法。在较旧的 API 级别上,库将模拟该行为。

API 变更

  • 针对生物识别提示添加了特定于 Fragment 的构造函数 (b/131980596)
  • 请参阅上文的“新功能”一节。

问题修复

  • 针对 L+ 添加了 BiometricPrompt 设备凭据支持
  • 修复了 BiometricPrompt 以使用公开错误常量 (b/137788194)
  • 修复了 BiometricPrompt.onAttach() 中的 NullPointerException (b/136103103)
  • 将行为更改为不允许通过提示之外的轻触事件取消 BiometricPrompt (b/135684487)
  • 修复了 Kotlin 中返回 null 错误值时发生的 onAuthenticationError 崩溃 (b/128350861)
  • 现在可以设置 FingerprintDialogFragment 的样式 (b/127878106)
  • FingerprintDialog 现在可滚动 (b/126367887)
  • 修复了旋转生物识别对话框引起 IllegalStateException 的错误 (b/124153656)、(b/123811924)
  • 修复了 API 级别 23 到 27 上的不一致行为 (b/124066957)
  • 修复了指纹登录对话框使用 TalkBack 读取错误文本的问题 (b/123572331)

版本 1.0.0-alpha04

2019 年 4 月 3 日

发布了 androidx.biometric:biometric:1.0.0-alpha04。点击此处可查看此版本中包含的提交内容。

问题修复

  • 修复了生物识别 Fragment 在所有情况下都不会清理的问题。(b/121117380)
  • 修复了 BiometricPrompt 仅允许一个 BiometricPrompt.AuthenticationCallback 实例的问题 (b/123857949)
  • 修复了系统和兼容版本之间的 BiometricPrompt 错误行为不一致的问题。(b/123572326)
  • 修复了在运行时使用 @NotNull errString 回调 onAuthenticationError() 导致 NullPointerException 的问题 (b/123167217)
  • 修复了 androidx.BiometricPrompt 取消按钮崩溃 (b/122054485)
  • 修复了 androidx.biometric.PromptInfo 标题/说明在 Android P 上不会变化的问题 (b/122856773)

版本 1.0.0-alpha03

2018 年 12 月 17 日

问题修复

  • 修复了片段相关问题
  • 现在,为了与 P 及更高版本保持一致,在 O 及更早版本设备上会立即返回锁定错误