众所周知,从android 9.0开始,android引入了生物识别提示 接口(interface) 为越来越多的生物识别传感器(例如指纹、面部识别等)提供标准的身份验证体验。
现在有了这个新的 BiometricPrompt Api,用户可以通过指纹、面部扫描仪或虹膜扫描(取决于他们的生物识别偏好)进行身份验证。 BiometricPrompt api 会处理这个问题,它会通过各种回调通知我们。
下面是我显示生物识别提示的代码。
biometricPrompt = new BiometricPrompt.Builder(context)
.setTitle("FingerPrint Authentication")
.setSubtitle("Login via Fingerprint")
.setDescription("Touch Fingerprint Sensor")
.setNegativeButton("Cancel", context.getMainExecutor(),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Log.d(TAG,"Cancelled");
}
})
.build();
现在,如果您看到我的代码,我将标题设置为 指纹认证 .现在在设备设置中,如果用户将生物特征偏好设置为 人脸识别 而不是 指纹 那么这个生物识别提示 将通过 faceID 对用户进行身份验证,即使用户一直触摸传感器,指纹传感器也不会工作。这会造成混淆,因为生物特征标题说的是“指纹认证”,而用户实际上是通过 进行身份验证的。人脸ID
有什么方法可以让我们知道用户选择了什么生物特征偏好(例如指纹或 FaceID)?因此,基于该偏好,我可以在 BiometricPrompt 上显示适当的消息,这样用户就不会感到困惑。
我已经探索了 BiometricPrompt 中的所有 api,但可以找到与 BiometricPreference 相关的任何内容。
任何帮助将不胜感激。
最佳答案
目前还没有办法知道这类信息,去年已经打开了一个问题来询问它(https://issuetracker.google.com/issues/111315641)。由于 Android 试图简化开发人员在其应用程序中实现身份验证的路径,因此 BiometricPrompt 实现中缺少选项(请参阅 Android 文档以了解 BiometricPrompt 实现)。
关于android - 如何通过 Biometric api 查看用户的 Bio-Metric Preference?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55588234/