KeyGeneration с использованием AndroidX.Biometric не работает, если установлено только лицо как биометрическое
В настоящее время мы пытаемся подписать данные с помощью биометрических данных, для чего мы используем библиотеку androidx.biometric.
Проблема в том, что если Fingerprint не установлен, но зарегистрировано лицо, мы не можем сгенерировать какие-либо ключи.
Только с отпечатком пальца или с комбинацией отпечатка пальца и лица все работает идеально.
Когда зарегистрировано только лицо, мы получаем следующее исключение во время генерации ключа:
Вызвано: java.security.InvalidAlgorithmParameterException: java.lang.IllegalStateException: для создания ключей, требующих аутентификации пользователя для каждого использования, должен быть зарегистрирован хотя бы один биометрический
Прежде чем начать генерацию ключа, мы проверяем наличие биометрических данных следующим образом:
логическое isAvailable = biometricManager.canAuthenticate() == BiometricManager.BIOMETRIC_SUCCESS;
Тестовое устройство в виде Samsung Galaxy S10 с Android 10.
Спасибо за помощь и с наилучшими пожеланиями
0 ответов
Google обновил биометрический SDK для AndroidX. Если вы собираетесь использовать в своем приложении аутентификацию строгого типа, аутентификацию можно проверить на наличие строгого типа. Если ваше устройство подходит для этого, вы можете создать криптообъект.
https://developer.android.com/jetpack/androidx/releases/biometric#1.1.0-alpha02
val canAuthenticate = BiometricManager.from (context)
.canAuthenticate (BiometricManager.Authenticators.BIOMETRIC_STRONG)
После этой проверки можно переходить к генерации ключа.