生物识别
最新更新 | 稳定版 | 候选发布版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2024 年 8 月 7 日 | 1.1.0 | - | - | 1.4.0-alpha02 |
声明依赖项
要添加对生物识别的依赖项,您必须将 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") }
有关依赖项的更多信息,请参阅 添加构建依赖项。
反馈
您的反馈有助于改进 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
错误修复
- 将
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。
错误修复
- 更新 UI 以与 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)
错误修复
- 删除了不必要的资源变体以减少库大小。(I3601e, b/220178553)
- 修复了在非活动上下文中托管的
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 包含以下提交。
新功能
- 改进了在非活动上下文中托管的片段对 BiometricPrompt 的支持 (I9312b)
API 更改
- 添加了对 Android 12 BiometricManager.Strings API 的支持 (I12f2d)
- 将目标和源代码兼容性从 Java 7 更改为 Java 8 (I16129)
错误修复
- 修复了 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 更改
- 重构了一些以前通过构建器设置的
AuthPrompt
字段,使其成为startAuthentication(...)
方法参数。(I18896, b/174098373) - 为在旧版 Android 版本上支持有限或不支持的
AuthPrompt
类型添加了最低 API 级别要求。(I18896) - 为所有通过构建器设置的
AuthPrompt
字段添加了 getter 方法。(I18896) - 为通过
AuthPrompt
API 进行的生物识别身份验证添加了挂起协程 Kotlin 扩展。这些函数将在成功时直接返回AuthenticationResult
,或在错误或失败(凭据拒绝)时抛出异常。(Iffc9e)
错误修复
- 修复了
BiometricManager.canAuthenticate(int)
有时会在 Android 10(API 级别 29)上具有指纹传感器的设备上返回错误状态代码的问题。(I72420, b/176921662) - 修复了
BiometricManager.canAuthenticate(int)
在 Android 10(API 级别 29)和之前的 SDK 版本上会为没有生物识别硬件且没有注册 PIN、图案或密码的设备返回错误状态代码的问题。(I79b7d, b/174505824) - 修复了当
BiometricPrompt
在生命周期比其关联的活动短的片段中托管时发生的内存泄漏问题。(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 _不需要_ 在早期的生命周期回调中构建BiometricPrompt
,例如onCreate
。(I19022) - 为
Fragment
和FragmentActivity
添加了针对新的AuthPrompt
API 的 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 包含以下提交。
错误修复
- 修复了某些设备上某些操作(身份验证、取消等)有时会抛出
NullPointerException
的问题。(b/151316421) - 修复了某些 Pixel 设备在 Android 10 上使用
BiometricManager#canAuthenticate(int)
检查 **类 3** 生物识别时报告错误状态的问题。(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)
错误修复
- 修复了
BiometricPrompt
在某些没有指纹传感器的 Android 9 设备上导致崩溃的问题。(b/151443237) - 修复了
FingerprintDialogFragment
中可能出现的NullPointerException
。(b/167951429) - 修复了
BiometricManager
中用于反射方法调用的错误CryptoObject
类型的问题。(b/165824669) - 修复了在某些 Android 10 设备上,在关闭
BiometricPrompt
后不久再次显示它会导致新提示自动关闭的问题。(b/157783075) - 修复了与使用
FingerprintManagerCompat
相关的内存泄漏问题。(b/165840273) - 修复了某些 Android 9 设备上指纹对话框 UI 被隐藏或显示不正确的问题。(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)
错误修复
- 修复了 LeakCanary 在
BiometricFragment
和BiometricViewModel
中报告的内存泄漏问题。(b/144919472) - 确保
BiometricViewModel
将不再从后台线程调用MutableLiveData#setValue()
。(b/159983244) - 修复了
BiometricPrompt
在某些 API 级别上无法正确处理临时锁定的问题。(9acfce9) - 修复了在某些 API 级别上,
BiometricPrompt
在设备未通过屏幕锁定凭据保护的情况下返回错误错误代码的问题。 (b/148626482) - 修复了在某些 API 级别上,
BiometricManager
和BiometricPrompt
在设备没有密钥保护实现的情况下返回错误错误代码的问题。 (891c6e0)
版本 1.1.0-alpha01
2020 年 6 月 24 日
androidx.biometric:biometric:1.1.0-alpha01
已发布。 版本 1.1.0-alpha01 包含以下提交。
新功能
- 重构了内部库实现,以解决潜在的内存泄漏和其他意外行为。
- 内部片段现在使用与客户端应用程序活动生命周期绑定的
ViewModel
共享和持久化数据。 - Android 10(API 级别 29)之前的设备凭据身份验证不再在客户端应用程序中启动透明活动。
- 内部片段现在使用与客户端应用程序活动生命周期绑定的
错误修复
- 解决了与使用
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/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 包含以下提交.
错误修复
- 添加了解决某些设备的解决方法,这些设备已知在 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 接收空
AuthenticationResult
可能会导致崩溃 (b/138862251) - 修复了
BiometricPrompt
在onSaveInstanceState()
后被关闭导致的崩溃 (b/138825362, b/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 库
BiometricManager#canAuthenticate
BiometricPrompt.PromptInfo#setConfirmationRequired
BiometricPrompt.PromptInfo#setDeviceCredentialAllowed
在 Android 10 上,库将调用来自平台 API 的对应方法。 在较旧的 API 级别上,库将模拟行为。
API 更改
- 为生物识别提示添加了特定于片段的构造函数 (b/131980596)
- 请参阅上面的“新功能”部分。
错误修复
- 为 L+ 添加 BiometricPrompt 设备凭据支持。
- 修复了 BiometricPrompt 以使用公共错误常量 (b/137788194)
- 修复了
BiometricPrompt.onAttach()
中的NullPointerException
(b/136103103) - 更改了行为,不允许 BiometricPrompt 被提示之外的触摸事件取消 (b/135684487)
- 修复了在 Kotlin 中返回空错误值时发生的 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
已发布。 此版本中包含的提交可以在 此处 找到。
错误修复
- 修复了生物识别片段在所有情况下都不会清理的问题。 (b/121117380)
- 修复了
BiometricPrompt
仅允许一个BiometricPrompt.AuthenticationCallback
实例的问题 (b/123857949) - 修复了
BiometricPrompt
错误行为在系统版本和兼容版本之间不一致的问题。 (b/123572326) - 修复了回调
onAuthenticationError()
使用@NotNull errString
导致运行时出现NullPointerException
的问题 (b/123167217) - 修复了
androidx.BiometricPrompt
取消按钮崩溃的问题 (b/122054485) - 修复了
androidx.biometric.PromptInfo
标题/描述在 Android P 上未更改的问题 (b/122856773)
版本 1.0.0-alpha03
2018 年 12 月 17 日
错误修复
- 修复了与片段相关的问题。
- 在 O 和更旧的设备上,锁定错误会立即返回,以与 P 及更高版本保持一致。