问题标签 [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 回答
1027 浏览

android - BiometricPrompt:BiometricFragment 和 Activity 内存泄漏

您好,我发现了 2 个我想解决的内存泄漏。

收到回调后onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result),我想setResult()调用finish()ActivityB 回到 ActivityA。
尽管这确实可以正常工作,但在调用finish().

2 LeakCanary 截图

以下是重现内存泄漏(ActivityB)的相关代码:

0 投票
0 回答
340 浏览

android - 运行 Android 9 及更低版本的设备上的 AndroidX BiometricPrompt

当使用 BiometricPromptsetDeviceCredentialAllowed(true)然后执行多个失败的指纹身份验证时,我希望设备回退到请求 PIN/模式来解锁设备。根据我的经验,Android 10 以下的 Android 设备实际上都没有这样做。

实际发生的是我收到ERROR_LOCKOUT错误消息onAuthenticationError,然后指纹读取器被系统禁用。这意味着即使我在 UI 中有一个“使用指纹登录”按钮,在用户多次验证失败后它也不会做任何事情。

在我运行 Android 10 的 OnePlus 7 Pro 上,行为是正确的;在多次失败的身份验证尝试后,对话框会要求输入 PIN。使用 AndroidX Biometrics,我希望旧设备上也会发生相同的行为。还是我弄错了?

编辑:向 Google 创建了关于此的错误报告:https ://issuetracker.google.com/issues/148045413

0 投票
0 回答
180 浏览

biometrics - 一加设备生物识别提示在第一次失败后被忽略

我在我的应用程序上使用BiometricPrompt。当我尝试在 OnePlus 设备上使用并使用未在操作系统上注册的另一个手指验证指纹时,它将触发onAuthenticationFailed()回调并且 biometricPrompt 将被解除。这在第一次尝试时发生。是否可以让用户多次失败(在文档中,我们在 30 秒内有 5 次,并且在第 5 次尝试后应该onAuthenticationError(int errorCode, @NonNull CharSequence errString)以 7 作为错误代码触发)而不关闭对话框?

0 投票
0 回答
129 浏览

android - AndroidBiometricPrompt onAuthenticationError 返回错误错误

我按照此处所述并使用setDeviceCredentialAllowed(true)实现了新的androidx.biometric:biometric:1.0.1。在 API 29 上它可以正常工作,在 API < 29 上,当没有设置任何设备凭据时,我希望得到ERROR_NO_DEVICE_CREDENTIAL但我得到ERROR_USER_CANCELED,这是一个库错误,如果是,我在哪里可以报告这个?或者如果没有,我错过了什么?

由于文档说这个库是向后兼容的,我希望我不需要自己为 API<29 处理任何事情,对吧?

正如我在 BiometricPrompt.java 中看到的,有一个代码块:

虽然不知道进一步。

0 投票
1 回答
136 浏览

android - 如何获取指纹安卓设备的名称?

我使用生物识别指纹 Android。当我们在设置中注册指纹时,我们还会存储指纹的名称。我的问题是,我们有可能得到指纹的名称吗?我只有验证指纹的代码,但我需要指纹的名称。谢谢你的帮助。

0 投票
1 回答
1286 浏览

android - 使用生物识别 androidx 库崩溃

在我的应用程序中,我使用的是 androidx 生物识别支持库 1.0.1。在 Android 9 上我可以看到这种错误,但我不知道它们来自哪里::

代码:

0 投票
1 回答
1575 浏览

android - Android jetpack 生物识别 DeviceCredentialHandlerActivity 导出=true 真的需要吗?

我使用 setDeviceCredentialAllowed(true) 实现了新的生物识别库,如官方文档中所示

在这个库中有一个正在使用的活动“DeviceCredentialHandlerActivity”,这个活动在清单中已经导出=true,为什么这个/真的需要这个?许多人应该知道,出于安全原因,应尽可能避免出口活动。我已经用以下内容覆盖了该属性:

并且指纹/密码身份验证仍在 Android 29 及以下版本上运行。

0 投票
1 回答
771 浏览

android - 在androidx生物识别提示中尝试三次失败后关闭提示?

我在我的应用程序中使用 androidX 生物识别提示。因为我有三个疑问,

  1. 在计算了三次失败尝试后,是否有任何选项可以关闭提示。

  2. 是否有任何选项可以显示密码屏幕,而无需单击使用密码按钮(如果启用设备凭据为真)。

    密码屏幕

  3. 有没有自定义提示框的选项。

0 投票
0 回答
107 浏览

android - 从设备中删除已注册的(一个)指纹后,加密的应用程序特定数据会发生什么情况?

完整问题:当从设备中删除已注册的(一个)指纹并且存储在 TEE 中的相关加密密钥(特定于应用程序)永久失效时,加密的应用程序特定数据会发生什么?

我不是 Android 开发人员,所以我没有太多的编码知识。我正在经历 Android Cryptography 的工作,尤其是本地身份验证机制,并以这种方式理解它:

简而言之:来自OWASP 移动安全测试指南的以下信息:

  1. 应用程序可以使用用户的指纹来解锁自己(在一段时间不活动之后)。
  2. 密码学应支持此身份验证机制,以证明其强大/安全。
  3. 我们需要创建一个加密密钥,该密钥应使用属性 setUserAuthenticationRequired(true) 进行设置,以便仅在指纹或设备 PIN 验证后使用。
    1. 该密钥可用于对特定于应用程序的数据进行签名/加密解密,从而使整个过程实现加密原语。

我脑海中的麻烦在于Android文档中的以下内容:

这仅发生在仅当用户已通过身份验证时才被授权使用的密钥。一旦安全锁定屏幕被禁用(即,重新配置为无、滑动或其他不验证用户身份的模式)或当安全锁定屏幕被强制重置(例如,由设备管理员),此类密钥将永久且不可逆转地失效。此外,配置为要求对每个密钥进行用户身份验证的密钥也将在注册新指纹或不再注册指纹时永久失效。

问题是,如果我的设备注册了指纹并且我的应用程序设置了指纹身份验证,那么在这种情况下,将创建一个密钥并用于执行加密操作(比如加密解密)。然后,此加密数据将存储在应用程序的本地存储中。在某种情况下,根据 Android 文档,用户从设备中删除他的指纹时,密钥将失效。在这种情况下,我的应用程序的加密数据将如何被解密以供进一步使用?因为你需要相同的密钥来解密数据,现在已经不可逆转地失效了。

我知道回退机制,如果未找到指纹,Android 将回退到 PIN 或模式设备身份验证。但这又不会创建新密钥,不是吗?或者提供对指纹身份验证使用的相同旧密钥的访问权限(因为它已失效)。

那么,App 的数据会发生什么变化呢?它会被删除吗?用户是否必须重新开始,设置帐户和偏好?

0 投票
1 回答
536 浏览

android - 生物识别对话框

生物识别对话框图像链接

所以,我想在我的 android 应用程序中集成类似的 Biometric Dialog。我在关注谷歌安卓文档。这是文档的链接。但我认为这仅用于指纹认证。如何在同一个对话框中获取两个图标?如果您的手机上注册了两件事?他们是否使用自定义 API 进行生物识别?