众所周知,从 android 9.0 开始,android 引入了BiometricPrompt Api来为越来越多的生物识别传感器(例如指纹、Face ID 等)提供标准的身份验证体验。
现在有了这个新的 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();
现在,如果您看到我的代码,我将 title 设置为Fingerprint Authentication。现在在设备设置中,如果用户将生物特征偏好设置为人脸 ID而不是指纹,那么这个biometricPrompt将通过人脸 ID 对用户进行身份验证,即使用户一直触摸传感器,指纹传感器也不会工作。这会造成混乱,因为生物特征标题说的是“指纹认证”,而用户实际上是通过faceID进行认证的
有什么方法可以让我们知道用户选择了哪些生物特征偏好(例如指纹或 FaceID)?因此,基于该偏好,我可以在 BiometricPrompt 上显示适当的消息,这样用户就不会感到困惑。
我已经探索了 BiometricPrompt 中的所有 api,但可以找到与 BiometricPreference 相关的任何内容。
任何帮助将不胜感激。