3

据说 Android 9/Android P (API 28) 支持通过 BiometricPrompt 进行面部识别。我读过的所有教程都使用 BiometricManager 来检测面部识别支持 ​​- 但直到 API 29 (Android 10/Android Q) 才添加此类。

那么,如何检测 API 28 上的面部识别支持呢?

我的偏好是在不使用 AndroidX 支持库的情况下执行此操作,因为我已经阅读了有关支持库版本的 BiometricManager.canAuthenticate() 结果在 API 28 及更低版本上运行时的含义的冲突信息。

4

1 回答 1

2

回答我自己的问题。似乎即使在 Android 10上也无法确定设备是否支持面部识别,因为BiometricManager.canAuthenticate()如果设备支持指纹身份验证,则会返回成功。来自API 文档

这相当于 canAuthenticate(int) 和 Authenticators#BIOMETRIC_WEAK

BiometricManager.canAuthenticate(int)直到 API 30 才可用。

因此,BiometricManager在 Android 10 上使用与使用已弃用的FingerprintManager.

所以回到我关于 Android 9 支持的问题。使用和在 Android 9 设备上运行时BiometricManager没有区别。因此等价于is 。FingerprintManagerBiometricManagerBiometricManagerFingerprintManager

但这对像我这样正在寻找一种方法来确定设备是否支持面部识别的人没有帮助。似乎没有任何方法可以确定这个 pre Android 11。

于 2020-06-17T16:04:31.590 回答