问题标签 [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.
android - 安卓模拟器人脸识别
BiometricPrompt
有什么方法可以测试模拟器上提供的android人脸识别吗?
我知道命令:
adb -e emu 手指触摸
但这仅用于指纹认证。
android - BiometricPrompt 虹膜和面部提示不适用于加密对象身份验证。#AndroidX
问题
- 生物特征认证虹膜和面部检测不提示
biometricPrompt.authenticate(**crypto**, promptInfo)
呼叫。
来源参考:
- 使用 BiometricPrompt 保护数据(2019 年 5 月 19 日)
- 一个适用于所有 Android 的生物识别 API(2019 年 10 月 30 日)
- 生物识别 API
用于测试的设备:
- 三星 S8(安卓操作系统 9)
我正在遵循的身份验证步骤:
- val biometricPrompt = BiometricPrompt(...)
- val promptInfo = BiometricPrompt.PromptInfo.Builder()...
- 生物识别提示。验证(promptInfo)(PFA:选项A,B)
还有另一种身份验证方法采用密码对象来确保
- 生物识别提示。验证(加密,promptInfo)。(PFA:选项C)
在新旧 API 设备支持下,一切都按预期工作。除非实现对其他生物特征认证选项虹膜和使用面部检测的测试应用。
如果我跟随
生物识别提示。验证(promptInfo),然后应用程序只需根据用户偏好显示身份验证选项,他必须从设备设置 -> 生物特征偏好中选择。并独立进行身份验证。(PFA:选项A、B)
但如果使用
biometricPrompt.**authenticate**(crypto, promptInfo)
,那么它只显示指纹认证选项。对于其他偏好选项 iris 和 face-detection,它不会在authenticate(..)
方法调用上显示任何内容。(PFA:选项C)
问题
- 为什么其他生物识别身份验证不提示加密对象身份验证。
android - 在生物识别提示中使用时如何确定使用哪个生物识别?
例如,如果用户的手机既有 faceID 又有指纹。
目前生物识别提示正在选择一个用户首先设置
android - 锁定错误后如何处理生物识别提示?
我正在使用生物识别提示来验证我的应用程序上的客户端。我遇到的问题是:在我使用错误的指纹 5 次后,我得到了将 API 锁定 30 秒的 ERR_LOCKOUT。在那之后,我一直收到锁定错误,即使我只是尝试创建生物识别提示信息而不使用手指进行身份验证。如何让应用更稳定?我需要在这 30 秒内使用处理程序还是有其他方法?
PS:收到错误后,我使用身份验证取消回调并返回错误
android - Biometrics prompt works with API 21+ but API 19 shows error
So I have app lock on my app that uses the devices lock method - I use Biometrics 1.0.1 which support all android versions, however on KitKat when I press unlock, it shows tihs toast:
authentication error: This device does not have a fingerprint sensor.
Even though I use .setDeviceCredentialAllowed(true) which should use devices PIN or pattern if no fingerprint is available.
keyguardManager.isKeyguardSecure returns true
android - Android BiometricAuthenticator.AuthenticationResult mUserId 和多个用户
在 Android 上,我想通过生物特征识别哪个用户正在使用我的应用程序。我不希望直接访问他们的原始指纹数据或面部识别。
我只是假设不止一个用户可能在使用手机。有没有办法告诉我是哪一个?我正在寻找一个唯一的用户 ID,而不是图片或类似的东西。诸如“User1 正在使用指纹传感器”之类的答案就足够了;我的应用不需要知道用户的指纹扫描或他们的电子邮件。我只想区分 User1 和 User2。
例如:一个安卓用户可以在他们的指纹传感器上设置多个手指。当我的应用程序调用 BiometricPrompt 时,我能以某种方式知道扫描了哪个手指号码。(Finger1?Finger2 等……)
在调试器中运行时,我看到它result
有一个mUserId
字段,但这总是 0。
这可能吗?如果不是,那是mUserId
为了什么?
android - 在访问敏感数据时,我们可以使用哪个 android 生物识别 API 来实现人脸解锁功能
我想在访问应用程序的敏感数据时实现人脸解锁功能。那么有没有像指纹一样构建它的API
android - BiometricPrompt:为什么我们应该在启用 setDeviceCredentialAllowed 之前检查 KeyguardManager.isDeviceSecure()?
BiometricPrompt.PromptInfo
'方法的文档setDeviceCredentialAllowed
说明:
[...] 在启用此功能之前,开发人员应首先检查 KeyguardManager.isDeviceSecure()。如果设备不安全,BiometricPrompt.ERROR_NO_DEVICE_CREDENTIAL 将在 BiometricPrompt.AuthenticationCallback.onAuthenticationError(int, CharSequence) 中返回。
但是,为了首先启用生物识别身份验证,您必须设置设备 PIN 或密码。当我们已经拥有时,这个检查(仅在 API 23+ 上可用)不是多余的BiometricManager.canAuthenticate
吗?
android - setDeviceCredentialAllowed 和 ERROR_USER_CANCELED
我正在实施生物识别技术,如果用户不想要/拥有生物识别技术,我希望能够回退到使用 PIN 码。
问题是,当用户选择“使用 PIN”,输入他们的 PIN,并验证两个不同的回调时,会触发:
第一个:onAuthenticationSucceeded
这是预期的。第二个:onAuthenticationError
与BiometricConstants.ERROR_USER_CANCELED
。
为什么输入 PIN 而不是生物识别会触发 ERROR_USER_CANCELED?我通过完成我的活动来处理这个错误,这不是我在这个流程中想要的。我这样做是因为当用户在对话框之外点击时我想关闭应用程序并且在这种情况下会触发同样的错误(尽管有这个修复)。
有没有办法区分故意取消对话框(通过后退按钮或在对话框外点击)和输入 PIN?
这是我的PromptInfo
:
在装有 Android 10 的 Pixel 2 上进行测试。使用版本"androidx.biometric:biometric:1.0.1"
。谢谢!