При разработке Android-приложения иногда вы хотите сначала аутентифицировать своего пользователя, прежде чем продолжить работу приложения, например, если пользователь хочет создать транзакцию в банковском приложении, вы можете сначала убедиться, что пользователь действительно является владельцем Устройство.

Один из необычных способов сделать это - использовать биометрическую аутентификацию. Биометрическая аутентификация позволяет пользователю аутентифицировать себя с помощью распознавания лица или отпечатка пальца.

Давайте сделаем простое приложение, использующее эту биометрическую аутентификацию!

Где исходный код?



tl;dr

Вот что мы будем делать в этой статье:

Если вы хотите использовать биометрическую аутентификацию в своем приложении, используйте biometric библиотеку AndroidX. Есть несколько пунктов, о которых вам может потребоваться знать об этой статье:

  • Мы можем проверить, поддерживает ли устройство пользователя биометрическую аутентификацию. Или зарегистрировался ли пользователь для какой-либо биометрической аутентификации или учетных данных устройства. Это делается с помощью метода canAuthenticate.
  • Если пользователь не зарегистрировался для какой-либо биометрической аутентификации или учетных данных устройства, вы можете попросить пользователя сделать это. Это делается с помощью Settings.ACTION_BIOMETRIC_ENROLL Intent.
  • Мы можем установить резервную аутентификацию, когда пользователь не хочет аутентифицироваться с помощью биометрических данных. Эта резервная аутентификация будет использовать учетные данные устройства, такие как ПИН-код, шаблон или пароль. Это делается с помощью метода setAllowedAuthenticators.

Пошаговое объяснение

Следуйте инструкциям ниже, чтобы создать простую заявку.

1. Откройте Android Studio. Создайте новый проект с опцией «Пустое действие».

2. Добавьте biometric и activity зависимости в ваш app/build.gradle файл, как показано ниже. Зависимость activity фактически не требуется для использования биометрической аутентификации. Однако мы будем использовать его только для запуска Intent.

3. Сначала построим макет. В частности, мы обновим файл activity_main.xml. Мы собираемся сделать очень простой макет для этого приложения. Как вы можете видеть на изображении ниже, наш макет будет состоять из одной кнопки. При нажатии этой кнопки пользователю будет предложено пройти аутентификацию с помощью биометрических данных или учетных данных устройства. Затем приложение покажет Snackbar, содержащий сообщение об успехе / ошибке. Вы можете увидеть код для activity_main.xml ниже.

4. И, наконец, обновим файл MainActivity.kt. Обновите файл, как показано во фрагменте кода ниже. Это немного долго, но вот краткий обзор того, что происходит: мы инициализируем все элементы, необходимые для биометрической аутентификации, а именно BiometricManager, BiometricPrompt и PromptInfo. Какие аутентификаторы мы будем использовать, мы указываем методом setAllowedAuthenticators. Здесь мы будем использовать BIOMETRIC_STRONG и DEVICE_CREDENTIAL. И мы также запускаем намерение, когда пользователь не зарегистрировался ни для какой биометрической аутентификации или учетных данных устройства. Это намерение попросит пользователя сначала настроить биометрическую аутентификацию.

5. Вот и все! Теперь вы можете запустить приложение и увидеть биометрическую аутентификацию в действии.

Спасибо за чтение!