android - setUserAuthenticationValidityDurationSeconds 不适用于 BiometricPrompt
问题描述
我使用 BiometricPrompt (androidx) 实现了生物特征认证。它运作良好,但我只能使用一次密钥。如果我在第一次之后立即尝试第二次使用它 - 我会收到异常 UserNotAuthenticatedException。对于密钥创建,我使用以下代码:
KeyGenParameterSpec.Builder(alias, KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT)
.setDigests(KeyProperties.DIGEST_SHA256, KeyProperties.DIGEST_SHA512)
.setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_RSA_OAEP)
.setUserAuthenticationRequired(true)
.build()
我也尝试添加.setUserAuthenticationValidityDurationSeconds(10)
以解决我的问题。但它只有在使用电源按钮解锁设备后才能工作。并且不工作 BiometricPrompt 请求。它看起来像一个错误。解决方案存在吗?
解决方案
推荐阅读
- html - 根据表格 ID 在点击时突出显示表格行
- python - 如何在python中动态地将元组值保存到变量中?
- javascript - 在javascript中对格式DD.MM.YYYY的日期进行排序
- git - 在 git stash -u 和 git stash pop 之后,一些被忽略和未跟踪的文件丢失了
- javascript - 当 Facebook 网站被访问者屏蔽时,如何将网站访问者的数据发送到 Facebook?
- authentication - 使用 Google Cloud Endpoints 在 Google Cloud Run 上保护内部 API 的最佳方式
- html - 如何使此联系表做出响应?
- javascript - 错误:到达数据结尾(数据长度 = 110449,询问索引 = 171816)。损坏的拉链?(节点js,工作表js)
- php - PHP - 在 PHP 中添加具有数组现有值的值的最佳方法是什么?
- python - Python Tortoise-ORM:在 __str__ 中使用相关模型字段