我正在开发一款使用指纹或人脸id对用户进行身份验证的应用程序。
从6.0 Marshmelow开始,Android包括API,以简化指纹传感器的实现。
是否有与此API不兼容的所有设备的列表?要么是因为它们是在6.0之前开发的,要么是因为他们的原始设备制造商仍然不想使用谷歌API。
或者如何知道如何支持最大数量的设备?
如果有人想知道,唯一属于这种情况的设备是:
Samsung Galaxy S5
Samsung Galaxy S5 mini
Samsung Galaxy S5 plus
Samsung Galaxy Note 4
Samsung Galaxy Note Edge
所有这些都是三星的,可以使用弃用的Pass SDK进行验证。
安卓M发布后,所有生产的带有指纹传感器的设备都与谷歌指纹API兼容。
此外,所有人脸解锁设备都与Google Pie生物识别API兼容,没有OEM开发自己的SDK。
这个答案的两部分。
第一部分
在API23(M(中引入FingerprintManager
API之前集成指纹传感器的设备,以及后来更新到API23的设备,可能有资格也可能没有资格与FingerprintManager API的部分集成,后者具有特定的安全要求。也就是说,生物特征匹配必须在安全的环境中执行,例如TEE。
在不符合要求的设备上,即使在身份验证"成功"后,KeyStore
操作(例如FingerprintManager#authenticate(CryptoObject)
(也会以某些方式失败,例如尝试使用密钥时的UserNotAuthenticatedException
第二部分
为了支持最大数量的设备,建议使用androidx.生物特征库。在引入该框架的BiometricManager/BiometricPrompt API之前的设备上,它将在内部调用FingerprintManager并显示系统对话框的支持版本。在存在BiometricManager/BiometricPrompt的较新API上,它调用系统/OEM对API的实现。原始设备制造商可以集成满足各种CDD要求的生物特征。
此外,它遵循androidx的发布时间表,与平台相比(例如,每周而不是每年(可以更快地修复错误