Biometria

Uwierzytelniaj za pomocą danych biometrycznych lub danych logowania urządzenia i wykonuj operacje kryptograficzne.
Najnowsza aktualizacja Wersja stabilna Kandydat do publikacji Wersja Beta Wersja alfa
21 września 2022 r. 1.1.0 - - 1.2.0-alfa05

Deklarowanie zależności

Aby dodać zależność od biometrii, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Google Maven.

W pliku build.gradle aplikacji lub modułu dodaj zależności artefaktów, których potrzebujesz:

Odlotowy

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

    // Kotlin
    implementation "androidx.biometric:biometric-ktx:1.2.0-alpha05"
}

Kotlin

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

    // Kotlin
    implementation("androidx.biometric:biometric:1.2.0-alpha05")
}

Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.

Opinia

Twoja opinia pomoże nam ulepszyć Jetpack. Daj nam znać, jeśli znajdziesz nowe wydania lub masz pomysły na ulepszenie tej biblioteki. Zanim utworzysz nową bibliotekę, przejrzyj problemy z tą biblioteką. Możesz oddać głos w ramach istniejącego problemu, klikając przycisk gwiazdki.

Utwórz nowy numer

Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.

Wersja 1.2.0

Wersja 1.2.0-alfa05

21 września 2022 r.

Opublikowano androidx.biometric:biometric:1.2.0-alpha05 i androidx.biometric:biometric-ktx:1.2.0-alpha05. Wersja 1.2.0-alpha05 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodano obsługę CryptoObject dla android.security.identity.PresentationSession w Androidzie 13. (C5f1ec, b/197965513)

Poprawki błędów

  • Usunięto zbędne warianty zasobów, aby zmniejszyć rozmiar biblioteki. (I3601e, b/220178553)
  • Rozwiązanie problemu z usługą BiometricPrompt hostowaną w kontekście braku aktywności. (Ife255)

Wersja 1.2.0-alfa04

17 listopada 2021 r.

Opublikowano androidx.biometric:biometric:1.2.0-alpha04 i androidx.biometric:biometric-ktx:1.2.0-alpha04. Wersja 1.2.0-alpha04 zawiera te zatwierdzenia.

Nowe funkcje

  • Ulepszona obsługa podpowiedzi biometrycznych w przypadku fragmentów hostowanych przez konteksty braku aktywności (I9312b)

Zmiany w interfejsie API

Poprawki błędów

  • Naprawiono błąd w interfejsie API 29, który powodował, że niektóre urządzenia (w tym emulatory) otrzymywały błąd anulowania po powrocie do kodu PIN, wzoru lub hasła. Pamiętaj, że w przypadku niektórych urządzeń korzystających z interfejsu API 29 użytkownik może zobaczyć prośbę o blokadę ekranu, nawet jeśli dostępna i zarejestrowana jest funkcja biometryczna. (b/142740104)
  • Naprawiono błąd w interfejsie API 29, który powodował, że urządzenia bez sprzętu biometrycznego nie przełączały się prawidłowo na kod PIN, wzór lub hasło (b/170517889)

Wersja 1.2.0-alfa03

24 lutego 2021 r.

Opublikowano androidx.biometric:biometric:1.2.0-alpha03 i androidx.biometric:biometric-ktx:1.2.0-alpha03. Wersja 1.2.0-alpha03 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodaliśmy rozszerzenia do zawieszania kohort dla CredentialAuthPrompt podobne do tych, które występują w przypadku innych typów AuthPrompt. (I9ac70)

Wersja 1.2.0-alfa02

27 stycznia 2021 r.

Opublikowano androidx.biometric:biometric:1.2.0-alpha02 i androidx.biometric:biometric-ktx:1.2.0-alpha02. Wersja 1.2.0-alpha02 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Zrefaktoryzowano niektóre pola AuthPrompt, które były wcześniej ustawione za pomocą kreatora, na argumenty metody startAuthentication(...). (I18896, b/174098373)
  • Dodaliśmy minimalne wymagania dotyczące poziomu interfejsu API dla typów AuthPrompt z ograniczoną lub brakującą obsługą w starszych wersjach Androida. (I18896)
  • Dodano metody pobierania dla wszystkich pól AuthPrompt ustawianych za pomocą kreatora. (I18896)
  • Dodano zawieszanie automatycznych rozszerzeń Kotlin na potrzeby uwierzytelniania biometrycznego przez interfejsy API AuthPrompt. Te funkcje zwracają bezpośrednio błąd AuthenticationResult w przypadku powodzenia lub zgłaszają wyjątek w przypadku błędu lub niepowodzenia (odrzucenia danych logowania). (Iffc9e)

Poprawki błędów

  • Rozwiązaliśmy problem, który powodował, że BiometricManager.canAuthenticate(int) czasami zwracał nieprawidłowy kod stanu w przypadku urządzenia z Androidem 10 (poziom interfejsu API 29) z czytnikiem linii papilarnych. (I72420, b/176921662)
  • Rozwiązaliśmy problem, który powodował, że na Androidzie 10 (poziom interfejsu API 29) i starszych wersjach pakietu SDK funkcja BiometricManager.canAuthenticate(int) zwracała nieprawidłowy kod stanu w przypadku urządzenia bez sprzętu biometrycznego i bez zarejestrowanego kodu PIN, wzoru lub hasła. (I79b7d, b/174505824)
  • Usunięto wyciek pamięci, gdy element BiometricPrompt był hostowany we fragmencie o cyklu życia krótszym niż powiązana z nim aktywność. (I70864, b/167014923)

Wersja 1.2.0-alfa01

Grudzień 2, 2020

Opublikowano androidx.biometric:biometric:1.2.0-alpha01 i androidx.biometric:biometric-ktx:1.2.0-alpha01. Wersja 1.2.0-alpha01 zawiera te zatwierdzenia.

Nowe funkcje

  • Wprowadziliśmy moduł androidx.biometric:biometric-ktx, który oprócz interfejsu androidx.biometric:biometric dodaje interfejsy API i rozszerzenia związane z Kotlinem.

Zmiany w interfejsie API

  • Dodano nowe interfejsy API AuthPrompt do tworzenia BiometricPrompt i przeprowadzania uwierzytelniania. Te interfejsy API nie wymagają, by BiometricPrompt było tworzone we wczesnej fazie cyklu życia wywołania zwrotnego, np. onCreate. (I19022)
  • Dodaliśmy rozszerzenia Kotlin do interfejsów Fragment i FragmentActivity dla nowych interfejsów API AuthPrompt. (Iaf98c)

Wersja 1.1.0

Wersja 1.1.0

27 stycznia 2021 r.

Aplikacja androidx.biometric:biometric:1.1.0 została zwolniona. Wersja 1.1.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.0.0

  • Dodaliśmy obsługę wsteczną do nowych funkcji uwierzytelniania biometrycznego i aktualizacji interfejsu API wprowadzonych w Androidzie 11.
  • Znacząco zmniejszono rozmiar aplikacji biblioteki (w niektórych przypadkach o ponad 100 KB).
  • Usunięto różne źródła wycieków pamięci, które wcześniej były spowodowane przez bibliotekę.
  • Naprawiono błędy weryfikacji zajęć, które mogły wpływać na wydajność na starszych wersjach Androida.
  • Wprowadziliśmy różne dodatkowe ulepszenia, aby zwiększyć stabilność i działanie biblioteki.

Wersja 1.1.0-rc01

11 listopada 2020 roku

Aplikacja androidx.biometric:biometric:1.1.0-rc01 została zwolniona. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.

Poprawki błędów

  • Naprawiono błąd, który powodował, że niektóre działania (uwierzytelnianie, anulowanie itp.) czasami powodowały wyświetlenie na niektórych urządzeniach błędu NullPointerException. (b/151316421)
  • Rozwiązaliśmy problem, który powodował, że niektóre urządzenia Pixel zgłaszały nieprawidłowy stan przy użyciu BiometricManager#canAuthenticate(int) do sprawdzania biometrii Class 3 na Androidzie 10. (b/170406186)

Wersja 1.1.0-beta01

1 października 2020 roku

Aplikacja androidx.biometric:biometric:1.1.0-beta01 została zwolniona. Wersja 1.1.0-beta01 zawiera te zatwierdzenia.

Nowe funkcje

  • Znacząco zmniejszono rozmiar pliku APK biblioteki (w niektórych przypadkach skompresowano o ponad 100 KB) przez zastąpienie animacji dialogów zasobami statycznymi w Androidzie 8.1 i starszych. (I4844e)
  • Gdy uwierzytelnianie biometryczne jest zablokowane, BiometricPrompt teraz automatycznie wraca do uwierzytelniania za pomocą danych logowania urządzenia (jeśli jest to dozwolone) we wszystkich obsługiwanych wersjach Androida. (b/149579143)

Poprawki błędów

  • Rozwiązaliśmy problem, który powodował awarię aplikacji BiometricPrompt na niektórych urządzeniach z Androidem 9 bez czytnika linii papilarnych. (b/151443237)
  • Naprawiono potencjalny NullPointerException w FingerprintDialogFragment. (b/167951429)
  • Rozwiązaliśmy problem, który powodował, że do wywoływania metody refleksyjnej w BiometricManager był używany nieprawidłowy typ CryptoObject. (b/165824669)
  • Rozwiązaliśmy problem, który na niektórych urządzeniach z Androidem 10 powodował automatyczne zamknięcie nowego komunikatu o treści BiometricPrompt tuż po odrzuceniu. (b/157783075)
  • Rozwiązaliśmy problem z wyciekami pamięci podczas korzystania z funkcji FingerprintManagerCompat. (b/165840273)
  • Rozwiązaliśmy problemy z ukrywaniem lub nieprawidłowym wyświetlaniem interfejsu okna wyboru odcisku palca na niektórych urządzeniach z Androidem 9. (b/154868505, b/148350291)

Wersja 1.1.0-alfa02

19 sierpnia 2020 r.

Aplikacja androidx.biometric:biometric:1.1.0-alpha02 została zwolniona. Wersja 1.1.0-alpha02 zawiera te zatwierdzenia.

Nowe funkcje

  • BiometricManager#canAuthenticate() może teraz zwracać wartość BIOMETRIC_STATUS_UNKNOWN, aby wskazać, że użytkownik może nadal uwierzytelnić się, lub BIOMETRIC_ERROR_UNSUPPORTED, aby wskazać, że dana kombinacja uwierzytelniania nie jest obsługiwana przez urządzenie.
  • BiometricPrompt#authenticate() może teraz być używana tylko do uwierzytelniania za pomocą danych logowania urządzenia z powiązanym systemem CryptoObject na Androidzie 11 (poziom API 30) i nowszych.

Zmiany w interfejsie API

Poprawki błędów

  • Naprawiliśmy wycieki pamięci zgłoszone przez LeakCanary w BiometricFragment i BiometricViewModel. (b/144919472)
  • BiometricViewModel nie będzie już wywoływać funkcji MutableLiveData#setValue() z wątku w tle. (b/159983244)
  • Rozwiązaliśmy problem, który powodował, że interfejs BiometricPrompt nie obsługiwał tymczasowej blokady na niektórych poziomach interfejsu API. (9acfce9)
  • Rozwiązaliśmy problem, który powodował, że BiometricPrompt zwracał nieprawidłowy kod błędu w przypadku urządzenia, które nie zostało zabezpieczone danymi logowania do blokady ekranu na niektórych poziomach interfejsu API. (b/148626482)
  • Rozwiązaliśmy problem, który powodował, że w przypadku urządzenia bez implementacji blokady klawiatury na niektórych poziomach API BiometricManager i BiometricPrompt zwracały nieprawidłowe kody błędów. (891c6e0)

Wersja 1.1.0-alfa01

24 czerwca 2020 r.

Aplikacja androidx.biometric:biometric:1.1.0-alpha01 została zwolniona. Wersja 1.1.0-alpha01 zawiera te zatwierdzenia.

Nowe funkcje

  • Zrefaktoryzowaliśmy implementację biblioteki wewnętrznej, aby rozwiązać potencjalne źródła wycieków pamięci i innych niezamierzonych zachowań:
    • Fragmenty wewnętrzne teraz udostępniają i utrwalają dane przy użyciu identyfikatora ViewModel powiązanego z cyklem aktywności aplikacji klienckiej.
    • Uwierzytelnianie danych logowania urządzenia sprzed Androida 10 (poziom interfejsu API 29) nie rozpoczyna już przejrzystej aktywności w aplikacji klienckiej.

Poprawki błędów

  • Usunięto ostrzeżenia o wycofaniu usługi FingerprintManagerCompat. (b/142967618)
  • Zmieniliśmy sposób wywoływania metod platformy ograniczonych przez SDK, aby uniknąć problemów z weryfikacją klas w starszych wersjach Androida. (94beb4b)
  • Zależności Gradle, które nie są częścią publicznego interfejsu API, nie są już eksportowane przez bibliotekę. (F289d9e)

Wersja 1.0.1

Wersja 1.0.1

18 grudnia 2019 r.

Aplikacja androidx.biometric:biometric:1.0.1 została zwolniona. Wersja 1.0.1 zawiera te zatwierdzenia.

Poprawki błędów

  • Rozszerzyliśmy obecne obejście zastąpienia odciskiem palca w przypadku uwierzytelniania opartego na kryptografii o znanych dostawców, których dotyczy problem, a jednocześnie ograniczyliśmy je do interfejsu API 28 (b/143361271).
  • Naprawiono błąd na niektórych urządzeniach, który powodował wyświetlanie okna biometrycznego pod nakładką systemową (b/143230260)
  • Naprawiono kilka problemów z setDeviceCredentialAllowed(true) (b/143091227, b/143097321, b/143653944)
  • Rozwiązaliśmy problem z niektórymi wersjami Androida, który powodował, że usługa onAuthenticationSuccess nie zawsze była wywoływana po potwierdzeniu danych logowania urządzenia przez użytkownika (b/145232806)
  • Rozwiązaliśmy problem z niektórymi wersjami Androida, który powodował, że funkcja onAuthenticationError nie zawsze była wywoływana po odrzuceniu promptu przy rotacji (b/145230042)
  • Rozwiązaliśmy problem, który powodował, że w niektórych wersjach Androida prośba nie była odrzucana podczas wyświetlania określonych kodów błędów (b/143683687).
  • Naprawiono potencjalny NullPointerException w BiometricFragment (b/142599311)

Wersja 1.0.0

Wersja 1.0.0

7 listopada 2019 r.

Wersja androidx.biometric:biometric:1.0.0 została udostępniona bez zmian od 1.0.0-rc02. Wersja 1.0.0 zawiera te zatwierdzenia.

Główne funkcje wersji 1.0.0

  • Zgodność interfejsów API BiometricPrompt i BiometricManager wdrożona w Androidzie 10, z pełną obsługą Androida 6.0 (API 23)
  • Wbudowane zarządzanie cyklem życia instancji BiometricPrompt w obrębie Fragment lub FragmentActivity
  • Specjalna obsługa urządzeń, które nieprawidłowo wykazują słabe dane biometryczne podczas uwierzytelniania kryptograficznego

Wersja 1.0.0-rc02

23 października 2019 r.

Aplikacja androidx.biometric:biometric:1.0.0-rc02 została zwolniona. Wersja 1.0.0-rc02 zawiera te zatwierdzenia.

Poprawki błędów

  • Dodaliśmy obejście dla niektórych urządzeń, które nieprawidłowo mają słabe dane biometryczne podczas wywoływania uwierzytelniania kryptograficznego w interfejsie API w wersjach 28 i 29 (b/142150327).

Wersja 1.0.0-rc01

9 października 2019 r.

Aplikacja androidx.biometric:biometric:1.0.0-rc01 została zwolniona. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.

Poprawki błędów

  • Usunięto potencjalną awarię aplikacji FingerprintDialogFragment podczas zamykania jej przy obracaniu ekranu (b/141356362).
  • Rozwiązaliśmy problem, który powodował, że otrzymanie wartości null AuthenticationResult z interfejsu API platformy mogło powodować awarię (b/138862251)
  • Naprawiono awarie powodowane przez zamknięcie usługi BiometricPrompt po onSaveInstanceState() (b/138825362, b/140447194)

Wersja 1.0.0-beta02

18 września 2019 r.

Aplikacja androidx.biometric:biometric:1.0.0-beta02 została zwolniona. Wersja 1.0.0-beta02 zawiera te zatwierdzenia.

Poprawki błędów

  • Rozwiązaliśmy problemy z obsługą danych logowania urządzenia w wersji 1.0.0-beta01
  • Usunęliśmy zależności Javy 8 i przełączyliśmy się na wersję w zależności od Javy 7 (b/140508526)
  • FingerprintHelperFragment teraz prawidłowo zgłasza ERROR_HW_NOT_PRESENT, gdy nie zostanie wykryty czytnik linii papilarnych (b/140427586).

Wersja 1.0.0-beta01

29 sierpnia 2019 r.

Aplikacja androidx.biometric:biometric:1.0.0-beta01 została zwolniona. Wersja 1.0.0-beta01 zawiera te zatwierdzenia.

Nowe funkcje

Wprowadziliśmy drugi konstruktor dla BimetricPrompt, który umożliwia przechowywanie go we fragmencie kodu (w przeciwieństwie do istniejącego konstruktora, który wymaga FragmentActivity).

Cieszymy się również, że w bibliotece biometrycznej w Androidzie 10 udostępniliśmy te funkcje:

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

W Androidzie 10 biblioteka wywoła odpowiednie metody z interfejsu API platformy. Na starszych poziomach API biblioteka będzie emulować to zachowanie.

Zmiany w interfejsie API

  • Dodano konstruktor fragmentowy na potrzeby promptów biometrycznych (b/131980596)
  • Zobacz sekcję „Nowe funkcje” powyżej.

Poprawki błędów

  • Dodaj obsługę danych logowania urządzenia BimetricPrompt dla L+
  • Naprawiliśmy BimetricPrompt, aby używać publicznych stałych błędów (b/137788194)
  • Popraw NullPointerException w: BiometricPrompt.onAttach() (b/136103103)
  • Zmieniono działanie, aby nie zezwalać na anulowanie promptu biometrycznego w przypadku zdarzenia dotknięcia poza promptem (b/135684487)
  • Poprawiono błąd AuthenticationError, gdy w usłudze Kotlin zwracana jest wartość null (b/128350861).
  • Można teraz określić styl elementu IntegrationDialogFragment (b/127878106)
  • PerspectiveDialog można teraz przewijać (b/126367887)
  • Naprawiono błąd polegający na tym, że obrócenie okna biometrycznego powoduje podniesienie powiadomienia IllegalStateException (b/124153656), (b/123811924)
  • Naprawiono niespójne działanie na poziomach API od 23 do 27. (b/124066957)
  • Rozwiązaliśmy problem polegający na tym, że okno logowania odciskiem palca odczytuło nieprawidłowy tekst za pomocą TalkBack. (b/123572331)

Wersja 1.0.0-alfa04

3 kwietnia 2019 r.

Aplikacja androidx.biometric:biometric:1.0.0-alpha04 została zwolniona. Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.

Poprawki błędów

  • Poprawiono fragmenty biometryczne, które nie są czyszczone we wszystkich przypadkach. (b/121117380)
  • Stałe BiometricPrompt zezwala tylko na 1 wystąpienie BiometricPrompt.AuthenticationCallback (b/123857949)
  • Naprawiono niespójność z działaniem błędów BiometricPrompt między wersjami systemowymi i kompatybilnymi. (b/123572326)
  • Poprawiono wywołanie zwrotne onAuthenticationError() z @NotNull errString, które powoduje NullPointerException w czasie działania (b/123167217)
  • Usunięto awarie przycisku anulowania androidx.BiometricPrompt (b/122054485)
  • Poprawiono tytuł/opis elementu androidx.biometric.PromptInfo na Androidzie P (b/122856773)

Wersja 1.0.0-alfa03

17 grudnia 2018 r.

Poprawki błędów

  • Usunięto problemy związane z fragmentami
  • Na urządzeniach O i starszych błędy blokowania są zwracane natychmiast, aby zachować zgodność z poziomem P i wyższym