Я реализовал биометрическую аутентификацию с помощью 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. Это похоже на ошибку. Решение существует?