使用Confirm Credentials api解锁面部

Yas*_*svi 12 android

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

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

这是api的限制吗?或者我要做一些额外的事情来实现这个目标?

在任何地方都找不到这样的帖子.

小智 18

遗憾的是,这是不可能的,因为使用面部解锁是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


Aks*_*125 5

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

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

在此处输入图片说明

java.lang.Object
   ?    android.hardware.biometrics.BiometricPrompt
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

使用BiometricPrompt构建器,我们可以:

setTitle()—设置要显示的标题(必需)

setSubtitle()—设置要显示的字幕(可选)

setDescription()—将描述设置为显示(可选)

setNegativeButton()—设置否定按钮的文本(必需)。

您还必须提供一个Executor实例和一个否定按钮的单击侦听器。

注意:您无法自定义对话框中使用的图标或错误消息。

implementation 'androidx.biometric:biometric:1.0.0-beta01'
Run Code Online (Sandbox Code Playgroud)

最新发布的

GitHub源代码在此处可用Kotlin开发的NativeBiometricScanner