首页 > 解决方案 > 适用于 Android M 及更高版本的指纹管理器或生物识别

问题描述

我想知道哪个更好用,Fingerprint Manager 还是 Android pie 9 中引入的新 Biometrics。

我创建了一个聊天应用程序,并且遇到了这个名为Fingerprint Manager的功能。

当我研究它寻找 Android 文档时,我发现他们已经为 Android 9 pie引入了新的生物识别技术。

我项目的最低 SDK 版本是 23(android M),构建 SDK 版本是 28(android Pie)。

我希望这个“指纹功能”在 6 (M) 和 9 (Pie) 之间的 Android 版本中工作。

那么我应该使用Biometrics还是Fingerprint Manager

如果我使用 Biometrics,它是否也可以在以前的版本中使用?如果是,那么如何使用这个新功能进行编码?

标签: androidbiometricsandroid-fingerprint-api

解决方案


最初,我认为这是真的:

真正的答案是完全有效,您将同时使用指纹管理器和新的 BiometricPrompt。

从 API 级别 23 开始,指纹实际上是唯一可用的“生物特征”。随着设备越来越多地向用户提供传感器,Android 发布了 biometricPrompt 类来解释尽可能多的生物特征。这里的目标是允许指纹、面部识别、语音识别等。所有这些对于一心一意的 FingerprintManager 来说都太过分了。因此,从 API28 BiometricPrompt 开始可用。

如果您使用 FingerprintManager,您将需要做更多的工作才能拥有良好的 UI 和功能。当您使用 BiometricPrompt 时,大部分功能都内置在 BiometricPrompt.builder 中。

构建器将在比 API 28 更旧的版本上工作,但从 API 23-27 开始,您可能会通过构建自己的 UI 更喜欢 UX。

@engmms 发布了一篇非常有用的 Medium 文章,关于为两个版本的 android 构建生物识别技术。

但是,进一步的研究和使用允许我编辑和更新这个答案:Androidx 生物识别库是您在应用程序中实现生物识别提示唯一需要的东西。对于库(不是硬件)添加:

    implementation "androidx.biometric:biometric:1.0.1"

这个 Androidx 库具有整合 Android 设备中从 Marshmallow 到当前的所有生物识别功能的工具。您可以轻松地使用回调来检查硬件是否存在、检查硬件可用性并检查生物识别注册,然后调用 .canAuthenticate。此外,该库具有用于身份验证的所有 3 个必要回调...onAuthenticationError、onAuthenticationFailed 和 onAuthenticationSuccess。

Androidx BiometricPrompt 还具有逻辑,不仅可以确定是否注册了生物特征,还会查询设备注册了哪个生物特征。这让库可以使用手指、面部和虹膜识别。目前的谷歌手机 Pixel 4 没有指纹扫描仪,但会通过 Androidx 库同时识别面部和虹膜进行身份验证。


推荐阅读