android - 如何通过 Biometric api 查看用户的 Bio-Metric Preference?

标签 android samsung-mobile android-9.0-pie android-fingerprint-api android-biometric-prompt

众所周知,从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/

相关文章:

java - Android 9 无法在 Android 外部公共(public)路径 ("storage/emulated/0/MyImages"中创建目录)

android P 中的 android AppComponentFactory - 如何围绕外部 Activity 包装/装饰功能

android - 在设置中打开背景限制

java - 检查 Firebase Cloud Messaging 上的新通知。 (流式细胞术)

android - 来自 GPS、网络和 Wifi 的 Cordova/Phonegap 地理定位

java - 三星手机imageView中的照片方向

android - 三星软键盘在焦点更改后丢失击键

android - AppCompatCheckBox 不适用于 API 21 以下

android - 如何在android中将图像编码为h264?

java - com.samsung.android.content.clipboard.SemClipboardManager.registerClipboardEventListener + 708 (SemClipboardManager.java :708)