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

https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#canAuthenticate(int)

val canAuthenticate = BiometricManager.from (context)
.canAuthenticate (BiometricManager.Authenticators.BIOMETRIC_STRONG)

После этой проверки можно переходить к генерации ключа.

Другие вопросы по тегам