使用Confirm Credentials api进行面部解锁

时间:2018-02-05 13:50:34

标签: android

我在我的应用中使用确认凭据api来使用createConfirmDeviceCredentialIntent api对用户进行身份验证。

当我将设备锁定为pin / pattern / password或fingerprint时,api工作正常。但是,它在面部解锁的情况下不起作用。我已在设备中设置了面部解锁功能,并且在打开设备时工作正常。但是当我使用上面提到的API启动意图时,它不会识别面部解锁,而是所有其他事情。

这是这个api的限制吗?或者我还要做些额外的工作来实现这个目标?

无法在任何地方找到此信息,因此请在此处发布。

2 个答案:

答案 0 :(得分:17)

不幸的是,这是不可能的,因为使用你的面部解锁是Smart Lock解锁工具集的一部分。

属于Smart Lock类别的其他解锁方法包括:

  • 身体检测
  • 值得信赖的地方
  • 受信任的设备
  • 值得信赖的脸(有问题的方法)
  • 值得信赖的声音

因为这些都不是Android中的原始安全方法,所以允许使用API​​访问它们是没有意义的。

如果Smart Lock可以与Keyguard一起使用,理论上,身体检测可以授予对应用程序的访问权限,位于受信任的位置(但不在受信任的人手中),甚至可信任的语音也可以使用。

Apple和Face ID可以允许这样做,因为Face ID是iPhone X的原始安全方法,因为用于解锁设备的数据保存在Secure Enclave中,就像Touch ID数据一样。

我希望这能给你足够的理由说明为什么这是不可能的,以及为什么这是不可能的。

来源: Keyguard(说明允许使用的解锁方法),Smart LockFace ID

答案 1 :(得分:3)

BiometricPrompt是在 API 28 中引入的。它将支持指纹,虹膜和面部认证。

示例在Android Developers Blog上可用

这是开发人员如何在其应用程序中使用它的示例

enter image description here

java.lang.Object
   ↳    android.hardware.biometrics.BiometricPrompt

enter image description here