0

在 Android 上,我想通过生物特征识别哪个用户正在使用我的应用程序。我不希望直接访问他们的原始指纹数据或面部识别。

我只是假设不止一个用户可能在使用手机。有没有办法告诉我是哪一个?我正在寻找一个唯一的用户 ID,而不是图片或类似的东西。诸如“User1 正在使用指纹传感器”之类的答案就足够了;我的应用不需要知道用户的指纹扫描或他们的电子邮件。我只想区分 User1 和 User2。

例如:一个安卓用户可以在他们的指纹传感器上设置多个手指。当我的应用程序调用 BiometricPrompt 时,我能以某种方式知道扫描了哪个手指号码。(Finger1?Finger2 等……)

在调试器中运行时,我看到它result有一个mUserId字段,但这总是 0。

new BiometricPrompt.AuthenticationCallback() {
                            @Override
                            public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {
                                // Can I write something here to figure out which user is using this phone?

这可能吗?如果不是,那是mUserId为了什么?

4

1 回答 1

1

当前的 API 不支持您尝试执行的操作。对于“当前扫描的指纹/面部/虹膜是否已在此设备上注册?”这个问题,它基本上会给您一个是/否的答案。. 而已。

那么 mUserId 是干什么用的?

我很确定它指的是当前进程的 UID,即标识应用程序内核级应用程序沙箱的唯一值。

无论如何,在源代码中getUserId都有注释,这意味着应用程序不应该使用它。如果你查看源代码,你可以看到他们在构造.@hideBiometricAuthenticator.AuthenticationResultBiometricPromptAuthenticationResult

于 2019-12-27T12:15:28.913 回答