Biometric
最近更新时间 | 稳定版 | 候选版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2024 年 8 月 7 日 | 1.1.0 | - | - | 1.4.0-alpha02 |
声明依赖项
如需添加 Biometric 的依赖项,您必须将 Google Maven 代码库添加到项目中。如需了解详情,请参阅 Google 的 Maven 代码库。
在应用或模块的 build.gradle
文件中添加所需工件的依赖项:
Groovy
dependencies { // Java language implementation implementation "androidx.biometric:biometric:1.1.0" // Kotlin implementation "androidx.biometric:biometric-ktx:1.4.0-alpha02" }
Kotlin
dependencies { // Java language implementation implementation("androidx.biometric:biometric:1.1.0") // Kotlin implementation("androidx.biometric:biometric:1.4.0-alpha02") }
如需详细了解依赖项,请参阅添加 build 依赖项。
反馈
您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。
如需了解详情,请参阅问题跟踪器文档。
版本 1.4
版本 1.4.0-alpha02
2024 年 8 月 7 日
发布了 androidx.biometric:biometric:1.4.0-alpha02
和 androidx.biometric:biometric-ktx:1.4.0-alpha02
。版本 1.4.0-alpha02 包含这些提交内容。
新功能
- 借助
PromptContentView
,开发者可以将自定义内容视图作为纯文字说明文本视图的附加选项显示 - 生物识别提示中显示应用徽标 - 使用应用图标自动添加。
API 变更
- 添加了用于支持自定义内容视图的 API
BiometricPrompt.PromptInfo.Builder#setContentView
BiometricPrompt.PromptInfo#getContentView
PromptContentView
接口PromptVerticalListContentView
类PromptContentViewWithMoreOptionsButton
类(仅适用于特权应用)
- 添加了 API 以支持徽标(仅适用于特权应用)
BiometricPrompt.PromptInfo.Builder#setLogoBitmap
BiometricPrompt.PromptInfo.Builder#setLogoRes
BiometricPrompt.PromptInfo.Builder#setLogoDescription
BiometricPrompt.PromptInfo#getLogoBitmap
BiometricPrompt.PromptInfo#getLogoRes
BiometricPrompt.PromptInfo#getLogoDescription
58c35c6
bug 修复
- 将
compileSdk
更新为 35 5dc41be
版本 1.4.0-alpha01
2024 年 5 月 29 日
发布了 androidx.biometric:biometric:1.4.0-alpha01
和 androidx.biometric:biometric-ktx:1.4.0-alpha01
。此版本是在内部分支中开发的,以 Android 15 Beta 2 为目标平台。
bug 修复
- 更新界面以与 Android 15 中的平台变更保持一致
版本 1.2.0
版本 1.2.0-alpha05
2022 年 9 月 21 日
发布了 androidx.biometric:biometric:1.2.0-alpha05
和 androidx.biometric:biometric-ktx:1.2.0-alpha05
。版本 1.2.0-alpha05 中包含这些提交内容。
API 变更
- 在 Android 13 中添加了对
android.security.identity.PresentationSession
的CryptoObject
支持。(C5f1ec、b/197965513)
bug 修复
- 移除了不必要的资源变体,以缩减库大小。(I3601e、b/220178553)
- 修复了在非 activity 上下文中托管的
BiometricPrompt
存在的问题。(Ife255)
版本 1.2.0-alpha04
2021 年 11 月 17 日
发布了 androidx.biometric:biometric:1.2.0-alpha04
和 androidx.biometric:biometric-ktx:1.2.0-alpha04
。版本 1.2.0-alpha04 中包含这些提交内容。
新功能
- 针对由非 activity 上下文托管的 fragment 改进了 BiometricPrompt 支持 (I9312b)
API 变更
- 添加了对 Android 12 BiometricManager.Strings API 的支持 (I12f2d)
- 将目标和源兼容性值从 Java 7 更改为 Java 8 (I16129)
bug 修复
- 修复了 API 29 中的以下问题:一些设备(包括模拟器)在回退到 PIN 码/图案/密码时会收到取消错误。请注意,对于某些搭载 API 29 的设备,即使用户已提供生物识别信息并已完成注册,这个问题可能还是会导致用户收到屏幕锁定提示。(b/142740104)
- 修复了 API 29 中的以下问题:未配有生物识别硬件的设备无法正确回退到 PIN 码/图案/密码 (b/170517889)
版本 1.2.0-alpha03
2021 年 2 月 24 日
发布了 androidx.biometric:biometric:1.2.0-alpha03
和 androidx.biometric:biometric-ktx:1.2.0-alpha03
。版本 1.2.0-alpha03 中包含这些提交内容。
API 变更
- 添加了针对 CredentialAuthPrompt 的挂起协程扩展程序,与现有的针对其他 AuthPrompt 类型的扩展程序类似。(I9ac70)
版本 1.2.0-alpha02
2021 年 1 月 27 日
发布了 androidx.biometric:biometric:1.2.0-alpha02
和 androidx.biometric:biometric-ktx:1.2.0-alpha02
。版本 1.2.0-alpha02 中包含这些提交内容。
API 变更
- 重构了之前通过构建器在
startAuthentication(...)
方法参数中设置的一些AuthPrompt
字段。(I18896、b/174098373) - 添加了针对旧版 Android 系统部分支持或不支持的
AuthPrompt
类型的最低 API 级别要求。(I18896) - 针对通过构建器设置的所有
AuthPrompt
字段添加了 getter 方法。(I18896) - 通过
AuthPrompt
API 添加了针对生物识别身份验证机制的挂起协程 Kotlin 扩展。这些函数会在成功时直接返回AuthenticationResult
,或者在出错或失败时(凭据被拒)时抛出异常。(Iffc9e)
bug 修复
- 修复了
BiometricManager.canAuthenticate(int)
针对配有指纹传感器的 Android 10(API 级别 29)设备有时会返回错误的状态代码的问题。(I72420、b/176921662) - 修复了
BiometricManager.canAuthenticate(int)
针对未配有生物识别硬件且未设置 PIN 码、图案或密码的 Android 10(API 级别 29)及以前的 SDK 版本设备会返回错误的状态代码的问题。(I79b7d、b/174505824) - 修复了当托管
BiometricPrompt
的 Fragment 的生命周期比其关联的 Activity 短时会发生的内存泄漏问题。(I70864、b/167014923)
版本 1.2.0-alpha01
2020 年 12 月 2 日
发布了 androidx.biometric:biometric:1.2.0-alpha01
和 androidx.biometric:biometric-ktx:1.2.0-alpha01
。版本 1.2.0-alpha01 中包含这些提交内容。
新功能
- 引入了
androidx.biometric:biometric-ktx
模块,此模块可基于androidx.biometric:biometric
添加 Kotlin 专用 API 和扩展。
API 变更
- 添加了新的
AuthPrompt
API,用于构造BiometricPrompt
和执行身份验证。这些 API 不需要在早期生命周期回调(例如onCreate
)中构造BiometricPrompt
。(I19022) - 针对新的
AuthPrompt
API 向Fragment
和FragmentActivity
添加了 Kotlin 扩展。(Iaf98c)
版本 1.1.0
版本 1.1.0
2021 年 1 月 27 日
发布了 androidx.biometric:biometric:1.1.0
。版本 1.1.0 中包含这些提交内容。
自 1.0.0 以来的重要变更
- 添加了对 Android 11 中引入的新的生物识别身份验证功能和 API 更新的向后兼容支持。
- 大大降低了库的应用占用空间(在某些情况下,可压缩出超过 100 KB 的空间)。
- 移除了之前因库导致的内存泄漏的各种来源。
- 修复了可能会在旧版 Android 系统中影响性能的类验证失败。
- 对库的稳定性和行为做出了各种额外的改进。
版本 1.1.0-rc01
2020 年 11 月 11 日
发布了 androidx.biometric:biometric:1.1.0-rc01
。版本 1.1.0-rc01 中包含这些提交内容。
bug 修复
- 修复了在某些设备上执行特定操作(进行身份验证、取消等操作)时有时会抛出
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)
bug 修复
- 修复了以下问题:在某些没有指纹传感器的 Android 9 设备上,
BiometricPrompt
会导致崩溃。(b/151443237) - 修复了
FingerprintDialogFragment
中的潜在NullPointerException
问题。(b/167951429) - 修复了为
BiometricManager
中的反射方法调用使用错误的CryptoObject
类型的问题。(b/165824669) - 修复了以下问题:在某些 Android 10 设备上,关闭后立即再次显示
BiometricPrompt
会自动产生需要关闭的新提示。(b/157783075) - 修复了与使用
FingerprintManagerCompat
相关的内存泄漏问题。(b/165840273) - 修复了以下问题:在某些 Android 9 设备上,指纹对话框界面不显示或显示不正确。(b/154868505、b/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 变更
- 可选择在构造
BiometricPrompt
的实例时提供显式Executor
。(I6bb8a) - 添加了 Android 11 中的
BiometricManager#canAuthenticate(int)
方法。(Ia3f1c) - 更新了
BiometricPrompt
,以增加对 Android 11 中BiometricManager.Authenticators
常量的支持。(I39bd8) - 添加了 Android 11 中的
BiometricPrompt.AuthenticationResult#getAuthenticationType()
方法。(Icfad5) - 添加了 Android 11 中的
BiometricPrompt.ERROR_SECURITY_UPDATE_REQUIRED
错误代码。(I6610b) - 更新了
BiometricPrompt.CryptoObject
,以仅在 Android 11(API 级别 30)及更高版本上支持IdentityCredential
。(I1d9f6)
bug 修复
- 修复了 LeakCanary 在
BiometricFragment
和BiometricViewModel
中报告的内存泄漏问题。(b/144919472) - 确保了
BiometricViewModel
不再从后台线程调用MutableLiveData#setValue()
。(b/159983244) - 修复了
BiometricPrompt
无法在某些 API 级别正确处理临时锁定的问题。(9acfce9) - 修复了
BiometricPrompt
在未使用屏幕锁定凭据的某些 API 级别的设备上返回的错误代码不正确的问题。(b/148626482) - 修复了对于在某些 API 级别上未实现锁屏功能的设备,
BiometricManager
和BiometricPrompt
会返回错误的错误代码的问题。(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。
- 内部 Fragment 现在使用与客户端应用的 Activity 生命周期相关联的
bug 修复
- 解决了与使用
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 中包含这些提交内容。
bug 修复
- 将基于加密的身份验证的现有指纹后备解决方法的适用范围扩大到已知受影响的供应商,但同时仍将其限制在 API 28 (b/143361271)
- 修复了特定设备上生物识别对话框显示在系统叠加层下方的问题 (b/143230260)
- 修复了几个与
setDeviceCredentialAllowed(true)
有关的问题(b/143091227、b/143097321、b/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 中实现的
BiometricPrompt
和BiometricManager
API 兼容性版本,可向后兼容 Android 6.0 (API 23) 的全部功能 - 在
Fragment
或FragmentActivity
中为BiometricPrompt
内置生命周期管理功能 - 对已知在基于加密的身份验证期间错误呈现弱生物识别特性的设备进行特殊处理
版本 1.0.0-rc02
2019 年 10 月 23 日
发布了 androidx.biometric:biometric:1.0.0-rc02
。版本 1.0.0-rc02 中包含这些提交内容。
bug 修复
- 针对已知在 API 版本 28 和 29 上调用基于加密的身份验证时错误提供弱生物识别特性的某些设备,添加了一种解决方法 (b/142150327)
版本 1.0.0-rc01
2019 年 10 月 9 日
发布了 androidx.biometric:biometric:1.0.0-rc01
。版本 1.0.0-rc01 中包含这些提交内容。
bug 修复
- 修复了在屏幕旋转时关闭
FingerprintDialogFragment
可能会导致崩溃的问题 (b/141356362) - 修复了从框架 API 接收 null
AuthenticationResult
可能会导致崩溃的问题 (b/138862251) - 修复了在
onSaveInstanceState()
之后关闭BiometricPrompt
导致的崩溃问题 (b/138825362、b/140447194)
版本 1.0.0-beta02
2019 年 9 月 18 日
发布了 androidx.biometric:biometric:1.0.0-beta02
。版本 1.0.0-beta02 中包含这些提交内容。
bug 修复
- 解决了版本
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 库中:
BiometricManager#canAuthenticate
BiometricPrompt.PromptInfo#setConfirmationRequired
BiometricPrompt.PromptInfo#setDeviceCredentialAllowed
在 Android 10 上,该库将从平台 API 调用对应的方法。在较旧的 API 级别上,库将模拟该行为。
API 变更
- 针对生物识别提示添加了特定于 Fragment 的构造函数 (b/131980596)
- 请参阅上文的“新功能”一节。
bug 修复
- 针对 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
。点击此处可查看此版本中包含的提交内容。
bug 修复
- 修复了生物识别 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 日
bug 修复
- 修复了片段相关问题
- 现在,为了与 P 及更高版本保持一致,在 O 及更早版本设备上会立即返回锁定错误