我在我的应用程序中使用确认凭据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
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
| 归档时间: |
|
| 查看次数: |
4753 次 |
| 最近记录: |