Биометрический

Выполняйте аутентификацию с помощью биометрических данных или учетных данных устройства и выполняйте криптографические операции.
Последнее обновление Стабильный выпуск Релиз-кандидат Бета-версия Альфа-релиз
7 августа 2024 г. 1.1.0 - - 1.4.0-альфа02

Объявление зависимостей

Чтобы добавить зависимость от Biometric, вам необходимо добавить в свой проект репозиторий Google Maven. Для получения дополнительной информации прочтите репозиторий Google Maven .

Добавьте зависимости для нужных вам артефактов в файл build.gradle для вашего приложения или модуля:

классный

dependencies {
    // Java language implementation
    implementation "androidx.biometric:biometric:1.1.0"

    // Kotlin
    implementation "androidx.biometric:biometric-ktx:1.4.0-alpha02"
}

Котлин

dependencies {
    // Java language implementation
    implementation("androidx.biometric:biometric:1.1.0")

    // Kotlin
    implementation("androidx.biometric:biometric:1.4.0-alpha02")
}

Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .

Обратная связь

Ваши отзывы помогают сделать Jetpack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.

Создать новую задачу

Дополнительную информацию см. в документации по системе отслеживания проблем .

Версия 1.4

Версия 1.4.0-альфа02

7 августа 2024 г.

Выпущены androidx.biometric:biometric:1.4.0-alpha02 и androidx.biometric:biometric-ktx:1.4.0-alpha02 . Версия 1.4.0-alpha02 содержит эти коммиты .

Новые возможности

  • PromptContentView позволяет разработчикам отображать настраиваемое представление контента в качестве дополнительной опции представления простого текста описания.
  • В биометрической подсказке отображается логотип приложения, который добавляется автоматически с помощью значка приложения.

Изменения API

  • Добавьте API для поддержки пользовательского просмотра контента.
    • BiometricPrompt.PromptInfo.Builder#setContentView
    • BiometricPrompt.PromptInfo#getContentView
    • Интерфейс PromptContentView
    • Класс PromptVerticalListContentView
    • Класс PromptContentViewWithMoreOptionsButton (только для привилегированных приложений)
  • Добавьте API для поддержки логотипа (только для привилегированных приложений)
    • BiometricPrompt.PromptInfo.Builder#setLogoBitmap
    • BiometricPrompt.PromptInfo.Builder#setLogoRes
    • BiometricPrompt.PromptInfo.Builder#setLogoDescription
    • BiometricPrompt.PromptInfo#getLogoBitmap
    • BiometricPrompt.PromptInfo#getLogoRes
    • BiometricPrompt.PromptInfo#getLogoDescription 58c35c6

Исправление ошибок

  • Обновите compileSdk до версии 35 5dc41be.

Версия 1.4.0-альфа01

29 мая 2024 г.

Выпущены androidx.biometric:biometric:1.4.0-alpha01 и androidx.biometric:biometric-ktx:1.4.0-alpha01 . Эта версия разработана во внутренней ветке и предназначена для Android 15 Beta 2.

Исправление ошибок

  • Обновите пользовательский интерфейс, чтобы он соответствовал изменениям платформы в Android 15.

Версия 1.2.0

Версия 1.2.0-альфа05

21 сентября 2022 г.

Выпущены androidx.biometric:biometric:1.2.0-alpha05 и androidx.biometric:biometric-ktx:1.2.0-alpha05 . Версия 1.2.0-alpha05 содержит эти коммиты.

Изменения API

  • Добавлена ​​поддержка CryptoObject для android.security.identity.PresentationSession в Android 13. ( C5f1ec , b/197965513 ).

Исправление ошибок

  • Удалены ненужные варианты ресурсов, чтобы уменьшить размер библиотеки. ( I3601e , б / 220178553 )
  • Исправлена ​​проблема с BiometricPrompt , размещенным в контекстах бездействия. ( Ифе255 )

Версия 1.2.0-альфа04

17 ноября 2021 г.

Выпущены androidx.biometric:biometric:1.2.0-alpha04 и androidx.biometric:biometric-ktx:1.2.0-alpha04 . Версия 1.2.0-alpha04 содержит эти коммиты.

Новые возможности

  • Улучшена поддержка BiometricPrompt для фрагментов, размещенных в контекстах неактивности ( I9312b ).

Изменения API

  • Добавлена ​​поддержка Android 12 BiometricManager.Strings API ( I12f2d ).
  • Изменена совместимость цели и источника с Java 7 на Java 8 ( I16129 ).

Исправление ошибок

  • Исправлена ​​проблема в API 29, из-за которой некоторые устройства (включая эмуляторы) получали ошибку отмены при возврате к PIN-коду/шаблону/паролю. Обратите внимание, что для некоторых устройств с API 29 это может привести к тому, что пользователю будет предложено заблокировать экран, даже если биометрические данные доступны и зарегистрированы. ( б / 142740104 )
  • Исправлена ​​проблема с API 29, из-за которой устройства без биометрического оборудования не могли корректно использовать PIN-код/шаблон/пароль ( b/170517889 ).

Версия 1.2.0-альфа03

24 февраля 2021 г.

Выпущены androidx.biometric:biometric:1.2.0-alpha03 и androidx.biometric:biometric-ktx:1.2.0-alpha03 . Версия 1.2.0-alpha03 содержит эти коммиты.

Изменения API

  • Добавлены расширения приостановки сопрограмм для CredentialAuthPrompt, аналогичные тем, которые существуют для других типов AuthPrompt. ( I9ac70 )

Версия 1.2.0-альфа02

27 января 2021 г.

Выпущены androidx.biometric:biometric:1.2.0-alpha02 и androidx.biometric:biometric-ktx:1.2.0-alpha02 . Версия 1.2.0-alpha02 содержит эти коммиты.

Изменения API

  • Переработаны некоторые поля AuthPrompt , которые ранее были установлены с помощью компоновщика в аргументы метода startAuthentication(...) . ( I18896 , б / 174098373 )
  • Добавлены требования к минимальному уровню API для типов AuthPrompt с ограниченной поддержкой или ее отсутствием в старых версиях Android. ( я18896 )
  • Добавлены методы получения для всех полей AuthPrompt , заданных через построитель. ( я18896 )
  • Добавлена ​​приостановка расширений сопрограммы Kotlin для биометрической аутентификации через API AuthPrompt . Эти функции возвращают AuthenticationResult непосредственно в случае успеха или выдают исключение в случае ошибки или сбоя (отклонение учетных данных). ( Iffc9e )

Исправление ошибок

  • Исправлена ​​проблема, из-за которой BiometricManager.canAuthenticate(int) иногда возвращал неверный код состояния для устройства со сканером отпечатков пальцев на Android 10 (уровень API 29). ( I72420 , б/176921662 )
  • Исправлена ​​проблема, из-за которой BiometricManager.canAuthenticate(int) возвращал неверный код состояния для устройства без биометрического оборудования и зарегистрированного PIN-кода, шаблона или пароля в Android 10 (уровень API 29) и предыдущих версиях SDK. ( I79b7d , б/174505824 )
  • Исправлена ​​утечка памяти, которая могла возникнуть, если BiometricPrompt размещался во фрагменте с более коротким жизненным циклом, чем связанное с ним действие. ( I70864 , б / 167014923 )

Версия 1.2.0-альфа01

2 декабря 2020 г.

Выпущены androidx.biometric:biometric:1.2.0-alpha01 и androidx.biometric:biometric-ktx:1.2.0-alpha01 . Версия 1.2.0-alpha01 содержит эти коммиты.

Новые возможности

  • Представлен модуль androidx.biometric:biometric-ktx , который добавляет API и расширения, специфичные для Kotlin, поверх androidx.biometric:biometric .

Изменения API

  • Добавлены новые API AuthPrompt для создания BiometricPrompt и выполнения аутентификации. Эти API не требуют создания BiometricPrompt в обратном вызове на ранней стадии жизненного цикла, например onCreate . ( I19022 )
  • Добавлены расширения Kotlin в Fragment и FragmentActivity для новых API AuthPrompt . ( Iaf98c )

Версия 1.1.0

Версия 1.1.0

27 января 2021 г.

Выпущен androidx.biometric:biometric:1.1.0 . Версия 1.1.0 содержит эти коммиты.

Основные изменения с версии 1.0.0

  • Добавлена ​​обратная совместимость для новых функций биометрической аутентификации и обновлений API, представленных в Android 11.
  • Значительно уменьшен размер приложения в библиотеке (в некоторых случаях более чем на 100 КБ).
  • Удалены различные источники утечек памяти, которые ранее были вызваны библиотекой.
  • Исправлены ошибки проверки класса, которые могли повлиять на производительность в старых версиях Android.
  • Сделаны различные дополнительные улучшения стабильности и поведения библиотеки.

Версия 1.1.0-rc01

11 ноября 2020 г.

Выпущен androidx.biometric:biometric:1.1.0-rc01 . Версия 1.1.0-rc01 содержит эти коммиты.

Исправление ошибок

  • Исправлена ​​проблема на некоторых устройствах, из-за которой определенные действия (аутентификация, отмена и т. д.) иногда вызывали исключение NullPointerException . ( б / 151316421 )
  • Исправлена ​​проблема, из-за которой некоторые устройства Pixel сообщали неправильный статус при использовании BiometricManager#canAuthenticate(int) для проверки биометрических данных класса 3 на Android 10. ( b/170406186 ).

Версия 1.1.0-бета01

1 октября 2020 г.

Выпущен androidx.biometric:biometric:1.1.0-beta01 . Версия 1.1.0-beta01 содержит эти коммиты.

Новые возможности

  • Значительно уменьшен размер APK-файла библиотеки (в некоторых случаях сжат более чем на 100 КБ) за счет замены анимации диалогов статическими ресурсами на Android 8.1 и более ранних версиях. ( I4844e )
  • BiometricPrompt теперь автоматически возвращается к аутентификации учетных данных устройства (если это разрешено) на всех поддерживаемых версиях Android, когда биометрическая аутентификация заблокирована. ( б / 149579143 )

Исправление ошибок

  • Исправлена ​​проблема, из-за которой BiometricPrompt приводил к сбою на некоторых устройствах Android 9 без датчика отпечатков пальцев. ( б / 151443237 )
  • Исправлено потенциальное NullPointerException в FingerprintDialogFragment . ( б / 167951429 )
  • Исправлена ​​проблема, из-за которой неправильный тип CryptoObject использовался для рефлексивного вызова метода в BiometricManager . ( б / 165824669 )
  • Исправлена ​​проблема, из-за которой повторный показ BiometricPrompt вскоре после закрытия приводил к автоматическому закрытию нового запроса на некоторых устройствах Android 10. ( б / 157783075 )
  • Исправлены утечки памяти, связанные с использованием FingerprintManagerCompat . ( б / 165840273 )
  • Исправлены проблемы, из-за которых пользовательский интерфейс диалогового окна отпечатка пальца был скрыт или некорректно отображался на некоторых устройствах Android 9. ( б / 154868505 , б / 148350291 )

Версия 1.1.0-альфа02

19 августа 2020 г.

Выпущен androidx.biometric:biometric:1.1.0-alpha02 . Версия 1.1.0-alpha02 содержит эти коммиты.

Новые возможности

  • BiometricManager#canAuthenticate() теперь может возвращать BIOMETRIC_STATUS_UNKNOWN чтобы указать, что пользователь все еще может пройти аутентификацию, или BIOMETRIC_ERROR_UNSUPPORTED , чтобы указать, что данная комбинация аутентификаторов не поддерживается устройством.
  • BiometricPrompt#authenticate() теперь можно использовать для аутентификации учетных данных устройства с помощью связанного CryptoObject только на Android 11 (уровень API 30) и выше.

Изменения API

Исправление ошибок

  • Исправлены утечки памяти, о которых сообщил LeakCanary в BiometricFragment и BiometricViewModel . ( б / 144919472 )
  • Гарантировано, что BiometricViewModel больше не будет вызывать MutableLiveData#setValue() из фонового потока. ( б / 159983244 )
  • Исправлена ​​проблема, из-за которой BiometricPrompt неправильно обрабатывал временную блокировку на некоторых уровнях API. ( 9acfce9 )
  • Исправлена ​​проблема, из-за которой BiometricPrompt возвращал неправильный код ошибки для устройства, не защищенного учетными данными блокировки экрана на некоторых уровнях API. ( б / 148626482 )
  • Исправлена ​​проблема, из-за которой BiometricManager и BiometricPrompt возвращали неверные коды ошибок для устройства без реализации защиты клавиатуры на некоторых уровнях API. ( 891c6e0 )

Версия 1.1.0-альфа01

24 июня 2020 г.

Выпущен androidx.biometric:biometric:1.1.0-alpha01 . Версия 1.1.0-alpha01 содержит эти коммиты.

Новые возможности

  • Рефакторинг внутренней реализации библиотеки для устранения потенциальных источников утечек памяти и другого непреднамеренного поведения:
    • Внутренние фрагменты теперь совместно используют и сохраняют данные с помощью ViewModel , привязанной к жизненному циклу активности клиентского приложения.
    • Аутентификация учетных данных устройства до Android 10 (уровень API 29) больше не запускает прозрачную активность в клиентском приложении.

Исправление ошибок

  • Устранены предупреждения об устаревании, связанные с использованием FingerprintManagerCompat . ( б / 142967618 )
  • Изменен способ вызова методов платформы, управляемых SDK, чтобы избежать проблем с проверкой класса в старых версиях Android. ( 94beb4b )
  • Зависимости Gradle, которые не являются частью общедоступного API, больше не экспортируются библиотекой. ( f289d9e )

Версия 1.0.1

Версия 1.0.1

18 декабря 2019 г.

Выпущен androidx.biometric:biometric:1.0.1 . Версия 1.0.1 содержит эти коммиты .

Исправление ошибок

  • Распространен существующий обходной путь отпечатка пальца для аутентификации на основе шифрования для известных затронутых поставщиков, а также ограничен API 28 ( b/143361271 ).
  • Исправлена ​​проблема на некоторых устройствах, из-за которой биометрический диалог отображался под системным наложением ( b/143230260 ).
  • Исправлено несколько проблем с setDeviceCredentialAllowed(true) ( ​​b/143091227 , b/143097321 , b/143653944 ).
  • Исправлена ​​проблема в некоторых версиях Android, из-за которой onAuthenticationSuccess не всегда вызывался после того, как пользователь подтвердил свои учетные данные устройства ( b/145232806 ).
  • Исправлена ​​проблема в некоторых версиях Android, из-за которой onAuthenticationError не всегда вызывался, когда приглашение закрывалось при ротации ( b/145230042 ).
  • Исправлена ​​проблема в некоторых версиях Android, из-за которой приглашение не закрывалось при получении определенных кодов ошибок ( b/143683687 ).
  • Исправлено потенциальное NullPointerException в BiometricFragment ( b/142599311 ).

Версия 1.0.0

Версия 1.0.0

7 ноября 2019 г.

androidx.biometric:biometric:1.0.0 выпущен без изменений с версии 1.0.0-rc02 . Версия 1.0.0 содержит эти коммиты .

Основные особенности версии 1.0.0

  • Версия совместимости API-интерфейсов BiometricPrompt и BiometricManager , реализованная в Android 10, с полной поддержкой функций вплоть до Android 6.0 (API 23).
  • Встроенное управление жизненным циклом BiometricPrompt внутри Fragment или FragmentActivity
  • Специальная обработка устройств, которые, как известно, неправильно представляют слабые биометрические данные во время аутентификации на основе шифрования.

Версия 1.0.0-rc02

23 октября 2019 г.

Выпущен androidx.biometric:biometric:1.0.0-rc02 . Версия 1.0.0-rc02 содержит эти коммиты .

Исправление ошибок

  • Добавлен обходной путь для некоторых устройств, которые, как известно, неправильно предоставляют слабые биометрические данные при вызове аутентификации на основе шифрования в версиях API 28 и 29 ( b/142150327 ).

Версия 1.0.0-rc01

9 октября 2019 г.

Выпущен androidx.biometric:biometric:1.0.0-rc01 . Версия 1.0.0-rc01 содержит эти коммиты .

Исправление ошибок

  • Исправлен потенциальный сбой FingerprintDialogFragment при его закрытии во время вращения экрана ( b/141356362 ).
  • Исправлена ​​проблема, из-за которой получение нулевого AuthenticationResult из API платформы могло привести к сбою ( b/138862251 ).
  • Исправлены сбои, вызванные закрытием BiometricPrompt после onSaveInstanceState() ( b/138825362 , b/140447194 ).

Версия 1.0.0-beta02

18 сентября 2019 г.

Выпущен androidx.biometric:biometric:1.0.0-beta02 . Версия 1.0.0-beta02 содержит эти коммиты .

Исправление ошибок

  • Исправлены проблемы с поддержкой учетных данных устройства в версии 1.0.0-beta01
  • Удалены зависимости Java 8 и переключены на зависимость от Java 7 ( b/140508526 )
  • FingerprintHelperFragment теперь правильно выдает ERROR_HW_NOT_PRESENT когда не обнаружено оборудование для отпечатков пальцев ( b/140427586 ).

Версия 1.0.0-бета01

29 августа 2019 г.

Выпущен androidx.biometric:biometric:1.0.0-beta01 . Версия 1.0.0-beta01 содержит эти коммиты .

Новые возможности

Мы представили второй конструктор для BiometricPrompt, который позволяет размещать его во фрагменте (в отличие от существующего конструктора, для которого требуется FragmentActivity).

Мы также рады представить следующие функции Android 10 в биометрической библиотеке AndroidX:

  1. BiometricManager#canAuthenticate
  2. BiometricPrompt.PromptInfo#setConfirmationRequired
  3. BiometricPrompt.PromptInfo#setDeviceCredentialAllowed

В Android 10 библиотека будет вызывать соответствующие методы из API платформы. На более старых уровнях API библиотека будет эмулировать такое поведение.

Изменения API

  • Добавлен специфичный для фрагмента конструктор для биометрической подсказки ( b/131980596 ).
  • См. раздел «Новые функции» выше.

Исправление ошибок

  • Добавлена ​​поддержка учетных данных устройства BiometricPrompt для L+.
  • Исправлена ​​ошибка BiometricPrompt для использования общедоступных констант ошибок ( b/137788194 ).
  • Исправить NullPointerException в BiometricPrompt.onAttach() ( b/136103103 )
  • Изменено поведение, чтобы запретить отмену BiometricPrompt касанием вне приглашения ( b/135684487 ).
  • Исправлен сбой onAuthenticationError, когда в Kotlin возвращается нулевое значение ошибки ( b/128350861 ).
  • FingerprintDialogFragment теперь поддерживает стили ( b/127878106 ).
  • FingerprintDialog теперь можно прокручивать ( b/126367887 )
  • Исправлена ​​ошибка, из-за которой поворот биометрического диалогового окна вызывал исключение IllegalStateException ( b/124153656 ), ( b/123811924 ).
  • Исправлено несогласованное поведение на уровнях API с 23 по 27. ( b/124066957 ).
  • Исправлена ​​проблема, из-за которой диалоговое окно входа по отпечатку пальца читало неверный текст с помощью Talkback. ( б / 123572331 )

Версия 1.0.0-альфа04

3 апреля 2019 г.

Выпущен androidx.biometric:biometric:1.0.0-alpha04 . Коммиты, включенные в эту версию, можно найти здесь .

Исправление ошибок

  • Фиксированные фрагменты биометрии удаляются не во всех случаях. ( б / 121117380 )
  • Исправленный BiometricPrompt допускает только один экземпляр BiometricPrompt.AuthenticationCallback ( b/123857949 ).
  • Исправлено поведение ошибки BiometricPrompt несовместимое между системной и совместимой версиями. ( б / 123572326 )
  • Исправлен обратный вызов onAuthenticationError() с @NotNull errString , вызывающий исключение NullPointerException во время выполнения ( b/123167217 ).
  • Исправлены сбои в работе кнопки отмены androidx.BiometricPrompt ( b/122054485 ).
  • Исправлен заголовок/описание androidx.biometric.PromptInfo , не измененное на Android P ( b/122856773 ).

Версия 1.0.0-альфа03

17 декабря 2018 г.

Исправление ошибок

  • Исправлены проблемы, связанные с фрагментами.
  • На устройствах O и старше ошибки блокировки возвращаются немедленно, чтобы соответствовать P и выше.