首页 > 解决方案 > 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 请求。它看起来像一个错误。解决方案存在吗?

标签: androidandroidxandroid-biometric-prompt

解决方案


推荐阅读