我在我的应用中使用确认凭据api来使用createConfirmDeviceCredentialIntent api对用户进行身份验证。
当我将设备锁定为pin / pattern / password或fingerprint时,api工作正常。但是,它在面部解锁的情况下不起作用。我已在设备中设置了面部解锁功能,并且在打开设备时工作正常。但是当我使用上面提到的API启动意图时,它不会识别面部解锁,而是所有其他事情。
这是这个api的限制吗?或者我还要做些额外的工作来实现这个目标?
无法在任何地方找到此信息,因此请在此处发布。
答案 0 :(得分:17)
不幸的是,这是不可能的,因为使用你的面部解锁是Smart Lock解锁工具集的一部分。
属于Smart Lock类别的其他解锁方法包括:
因为这些都不是Android中的原始安全方法,所以允许使用API访问它们是没有意义的。
如果Smart Lock可以与Keyguard一起使用,理论上,身体检测可以授予对应用程序的访问权限,位于受信任的位置(但不在受信任的人手中),甚至可信任的语音也可以使用。
Apple和Face ID可以允许这样做,因为Face ID是iPhone X的原始安全方法,因为用于解锁设备的数据保存在Secure Enclave中,就像Touch ID数据一样。
我希望这能给你足够的理由说明为什么这是不可能的,以及为什么这是不可能的。
来源: Keyguard(说明允许使用的解锁方法),Smart Lock,Face ID
答案 1 :(得分:3)
BiometricPrompt是在 API 28 中引入的。它将支持指纹,虹膜和面部认证。
示例在Android Developers Blog上可用
这是开发人员如何在其应用程序中使用它的示例
java.lang.Object
↳ android.hardware.biometrics.BiometricPrompt