11

他们在博客Better Biometrics in Android P中说:“为了保证用户的安全,大多数应用程序和设备都有身份验证机制,或者证明你是你的方式。这些机制分为三类:知识因素、拥有因素和生物特征因素。知识因素要求您知道的东西(例如 PIN 或密码),拥有因素要求您拥有的东西(例如令牌生成器或安全密钥),生物特征因素要求您提供的东西(例如您的指纹、虹膜) ,或脸)”。

但是当我在BiometricPrompt API 中阅读时,我看不到虹膜或面部的文档,仅验证对指纹的支持:“此调用预热指纹硬件,显示系统提供的对话框,并开始扫描指纹。它终止当 BiometricPrompt.AuthenticationCallback.onAuthenticationError(int, CharSequence) 被调用时......”我如何使用 Biometrics 创建带有虹膜和面部的身份验证登录或任何其他解决方案?

4

2 回答 2

11

安卓 6

  • 引入FingerprintManager类以提供对指纹传感器的支持。
  • 开发人员需要构建自己的指纹 UI。

安卓 9

  • 弃用FingerprintManager类。
  • 引入新的生物识别 API 以访问 OEM 设备上可用的各种生物识别硬件。
  • 引入标准化的指纹 UI 策略。OEM 现在可以自定义 UI。应用程序开发人员失去了创建自定义 UI 的能力。
  • 它包括仅针对该类 的指纹集成。BiometricPrompt指纹生物识别提示

安卓 10

  • Biometric API 现在是AndroidX Biometric Library的一部分,它使 Android 10 的所有生物识别行为可用于所有运行 Android 6.0(API 级别 23)或更高版本的设备。
  • 包括用于. _BiometricPrompt指纹和面部认证 BiometricPrompt
  • 介绍了BiometricManager开发者可以用来查询生物特征认证 可用性的类
    • 如果设备支持多种生物识别,用户可以在操作系统设置中指定默认/首选方法。
    • BiometricManager不会为您提供有关可用方法的信息,它只会返回是否至少有一个可用方法。
    • BiometricManager不允许您知道正在使用哪种生物识别方法。
    • BiometricManager如果设备支持多种方法,则不允许您选择首选方法。
    • 如果不存在生物识别传感器,API 现在允许开发人员指定是否要使用设备凭据(PIN、图案或密码)。
  • 该框架现在为 OEM 提供了一个友好的标准化 API,以集成对其设备上所有类型的生物识别传感器的支持。
  • 该框架现在在 Android 10 中内置了对面部身份验证的支持,因此供应商无需创建自定义实现。
  • 生物特征库架构生物识别图书馆架构

关于虹膜扫描仪,一些 OEM(例如三星)已经将其虹膜传感器的实施与生物识别 API 集成在一起。但是,Android 还没有为 OEM 提供与虹膜传感器交互的标准 API(据我所知),这会阻止基于 AOSP 的 ROM 访问虹膜传感器。

在 AOSP 问题跟踪器中,有一个“添加生物识别虹膜 HAL 接口”的开放票,旨在创建一个 HAL 接口以标准化 Android 框架与虹膜扫描仪的通信方式。不幸的是,票证的最后一次进展是在 2018 年 3 月。

更新:安卓 11

  • Android 11 引入了BiometricManager.Authenticators接口。该接口定义了生物识别硬件元素的可能优势:
    • BIOMETRIC_STRONG:设备上的任何生物特征(例如指纹、虹膜或面部)满足或超过 Android CDD 定义的 Strong 要求。
    • BIOMETRIC_WEAK:设备上满足或超过 Android CDD 定义的弱要求的任何生物特征(例如指纹、虹膜或面部)。
    • DEVICE_CREDENTIAL:用于保护设备的非生物特征凭据(即 PIN、图案或密码)。
  • ACTION_BIOMETRIC_ENROLL意图操作调用系统设置并请求用户注册生物识别硬件元素。您可以额外提供强度等级。
  • AuthenticationResult API 有一个新方法getAuthenticationType(),允许您检查用户是否使用生物特征或设备凭据进行了身份验证。

参考

于 2020-01-10T16:29:09.547 回答
10

Android 9 仅支持生物特征身份验证的指纹方面。虹膜和面部识别将得到支持。请注意,这会导致在为 Android P 编写应用程序时弃用之前的 FingerprintManager API。

Android 9 仅包括用于 BiometricPrompt 的指纹集成。但是,即将推出对其他生物识别模式的集成支持。

来源

于 2018-10-19T05:54:42.390 回答