问题标签 [android-biometric-prompt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1805 浏览

android - Jetpack 的 BiometricPrompt (androidx.biometric.BiometricPrompt) 抛出 NullPointerException

androidx.biometric:biometric:1.0.0-alpha03在测试项目中使用,并且在推送时negative button总是收到以下错误消息:

我认为这是一个需要修复的库问题,因为片段似乎为空,或者我在这里做错了什么?

0 投票
4 回答
4634 浏览

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

众所周知,从 android 9.0 开始,android 引入了BiometricPrompt Api来为越来越多的生物识别传感器(例如指纹、Face ID 等)提供标准的身份验证体验。

现在有了这个新的 BiometricPrompt Api,用户可以通过指纹、面部扫描仪或虹膜扫描(取决于他们的生物识别偏好)进行身份验证。BiometricPrompt api 会处理这个问题,它会通过各种回调通知我们。

下面是我显示生物识别提示的代码。

现在,如果您看到我的代码,我将 title 设置为Fingerprint Authentication。现在在设备设置中,如果用户将生物特征偏好设置为人脸 ID而不是指纹,那么这个biometricPrompt将通过人脸 ID 对用户进行身份验证,即使用户一直触摸传感器,指纹传感器也不会工作。这会造成混乱,因为生物特征标题说的是“指纹认证”,而用户实际上是通过faceID进行认证的

有什么方法可以让我们知道用户选择了哪些生物特征偏好(例如指纹或 FaceID)?因此,基于该偏好,我可以在 BiometricPrompt 上显示适当的消息,这样用户就不会感到困惑。

我已经探索了 BiometricPrompt 中的所有 api,但可以找到与 BiometricPreference 相关的任何内容。

任何帮助将不胜感激。

0 投票
0 回答
77 浏览

android - 引发用户未通过身份验证访问三星 S10 中 KeyStore 中的密钥

我正在使用生物识别 API 来访问我的密钥库。

要访问密钥库,我已将 setUserAuthenticationRequired 启用为 true。访问 Keystore 时,我将调用生物识别 api 并对用户进行身份验证。但是在三星s10中,Face ID认证得到提示,并且使用人脸认证成功。

但是,我无法访问密钥库。它说用户需要进行身份验证。

谁能帮我解决这个问题。为什么 keystore 不允许 Face ID 身份验证访问 KeyStore。

0 投票
1 回答
4267 浏览

android - BiometricPrompt 在三星 S9 上使用人脸解锁时崩溃

BiometricPrompt在我的应用程序中使用 Android P (API 28) 中的新 API。(我实际上是在基于这个项目的包装器中使用它,以便它也可以在旧设备上运行,但这与问题无关。)这在我测试过的所有设备上都运行良好,三星 S9 除外人脸解锁。

尽管BiometricPrompt当前的 Android 版本仅支持指纹认证,但三星似乎已将其扩展为支持人脸解锁。当我在我的应用程序中触发生物识别身份验证时,“底部工作表”会弹出一个面部图标(而不是所有其他设备上显示的指纹图标),并且在屏幕顶部会出现一些文字,上面写着“未检测到面部”。(注意这里显示的图标是操作系统提供的,不是我的,所以很明显是三星设计的。)

根据文档,只有在身份验证成功BiometricPrompt时才应该关闭自己并调用我的方法。onAuthenticationSucceeded根据logcat,看起来它已经成功了:

但是,它随后崩溃并出现以下错误:

根据文档,生物特征认证的成功应该已经解锁了密钥库,但这显然没有发生,如Key user not authenticated异常中的消息所示。

我怎样才能得到这个工作?

0 投票
3 回答
2341 浏览

android - Android 在将 androidx 生物识别更新为 1.0.0-alpha04 后崩溃

一切正常'androidx.biometric:biometric:1.0.0-alpha03',但是当我使用最新版本构建我的项目'androidx.biometric:biometric:1.0.0-alpha04'并调用myBiometricPrompt.authenticate(promptInfo)它时会引发此异常:FragmentManager is already executing transactions.

这是堆栈跟踪:

有谁知道发生了什么以及该怎么做?现在,我会坚持使用1.0.0-alpha03版本

谢谢!

0 投票
0 回答
793 浏览

xamarin.android - 使用带有密码回退的 Android BiometricPrompt 或 FingerprintManager

我正在尝试使用生物识别技术创建可以安全访问密钥库的 Android 应用程序。

我正在使用这个样本:

https://developer.xamarin.com/samples/monodroid/FingerprintGuide/ https://developer.xamarin.com/samples/monodroid/android-m/FingerprintDialog/

一切正常,但我还想使用屏幕锁定(密码、PIN 或图案)作为后备选项。是否可以将此后备与 FingerprintManager 或新的 BiometricPrompt 一起使用?当我尝试使用 iOS 执行此操作时,会自动回退

感谢您的任何帮助。

0 投票
2 回答
1195 浏览

android - Android生物识别命中FINGERPRINT_ERROR_LOCKOUT如何在不等待30秒的情况下重置

Android 6.0 以上,不使用三星库。使用 android-google 生物识别库,当用户达到最大尝试次数时,它将抛出 FINGERPRINT_ERROR_LOCKOUT。

我知道 30 秒后允许用户再次尝试使用生物识别登录,但我想知道有什么办法可以避免等待 30 秒吗?正如我可以手动重置它,以便用户可以再次尝试使用生物识别登录,而无需等待 30 秒倒计时。

我在互联网上搜索过,大多数解决方案是等到 30 秒完成,然后让用户再次尝试生物识别登录。

为了开始收听,我调用 mFingerprintManager.authenticate(),为了取消我调用 mCancellationSignal.cancel(),如果它的状态仍然在 FINGERPRINT_ERROR_LOCKOUT(30 秒等待时间)下它不起作用,我想知道我可以通过什么方式绕过和重置,所以我不必等待 30 秒。

0 投票
1 回答
2495 浏览

android - FragmentManager 在 Fragment 内执行 biometricPrompt?.authenticate(promptInfo) 时已经在执行事务

如果您在活动中创建 biometricPrompt 和 promptInfo,它工作正常。但我无法让它在片段中工作。

这是一个片段内部,它在 OnViewCreated 内部被调用。您在活动中执行相同的操作效果很好,一种解决方案是从活动中传递 biometricPrompt 和 PromptInfo 并将其传递到片段中。

0 投票
1 回答
1065 浏览

android - BiometricPrompt:如何加密几个字符串?

我需要在我的应用程序中使用生物特征认证来加密几个字符串。我正在使用这段代码:

第一个字符串编码良好。但是当我尝试编码第二个字符串时,我遇到了崩溃:

据我所知,我应该为每个字符串使用不同的 IV。但是如何设置新的IV?我刚收到来自 BiometricPrompt 的 IV。

0 投票
1 回答
469 浏览

android - Android生物识别身份验证返回“唯一ID”并用它加密

我有问题。我在 google 上搜索了生物特征身份验证,但所有示例 api 都只返回带有布尔值的“身份验证成功”。

示例: https ://proandroiddev.com/5-steps-to-implement-biometric-authentication-in-android-dbeb825aeee8

我想用用户的生物识别 ID 加密 SQL。生物识别 ID 将是关键。它可以是 256 位或 64 位密钥。

有没有图书馆?