Biometryczne

uwierzytelniać się za pomocą danych biometrycznych lub danych logowania na urządzeniu oraz wykonywać operacje kryptograficzne;
Ostatnia aktualizacja Wersja stabilna Wersja kandydująca Wersja Beta Wydanie alfa
7 sierpnia 2024 r. 1.1.0 - - 1.4.0-alfa02

Deklarowanie zależności

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

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

Odlotowe

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

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

Kotlin

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

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

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

Opinia

Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk z gwiazdką.

Tworzenie nowego numeru

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

Wersja 1.4

Wersja 1.4.0-alpha02

7 sierpnia 2024 r.

androidx.biometric:biometric:1.4.0-alpha02 i androidx.biometric:biometric-ktx:1.4.0-alpha02 zostały udostępnione. Wersja 1.4.0-alpha02 zawiera te komity.

Nowe funkcje

  • PromptContentView pozwala deweloperom wyświetlać widok treści niestandardowych jako dodatkową opcję widoku zwykłego tekstu opisu
  • Widoczne jest logo aplikacji w prompcie biometrycznym – dodane automatycznie za pomocą ikony aplikacji.

Zmiany w interfejsie API

  • Dodawanie interfejsów API do obsługi widoku niestandardowego treści
    • BiometricPrompt.PromptInfo.Builder#setContentView
    • BiometricPrompt.PromptInfo#getContentView
    • PromptContentView interfejs
    • Zajęcia: PromptVerticalListContentView
    • klasa PromptContentViewWithMoreOptionsButton (tylko w przypadku aplikacji uprzywilejowanych);
  • Dodaj interfejsy API do obsługi logo (tylko w przypadku aplikacji z podwyższonymi uprawnieniami)
    • BiometricPrompt.PromptInfo.Builder#setLogoBitmap
    • BiometricPrompt.PromptInfo.Builder#setLogoRes
    • BiometricPrompt.PromptInfo.Builder#setLogoDescription
    • BiometricPrompt.PromptInfo#getLogoBitmap
    • BiometricPrompt.PromptInfo#getLogoRes
    • BiometricPrompt.PromptInfo#getLogoDescription 58c35c6

Poprawki błędów

  • Zaktualizuj compileSdk do 35 5dc41be

Wersja 1.4.0-alpha01

29 maja 2024 r.

androidx.biometric:biometric:1.4.0-alpha01androidx.biometric:biometric-ktx:1.4.0-alpha01 są dostępne. Ta wersja jest opracowywana w gałęzi wewnętrznej i jest kierowana na Androida 15 w wersji beta 2.

Poprawki błędów

  • Zaktualizuj interfejs, aby był zgodny ze zmianami platformy w Androidzie 15

Wersja 1.2.0

Wersja 1.2.0-alpha05

21 września 2022 r.

androidx.biometric:biometric:1.2.0-alpha05 i androidx.biometric:biometric-ktx:1.2.0-alpha05 zostały udostępnione. Wersja 1.2.0-alpha05 zawiera te commity.

Zmiany w interfejsie API

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

Poprawki błędów

  • Usunięto niepotrzebne warianty zasobów, aby zmniejszyć rozmiar biblioteki. (I3601e, b/220178553)
  • Rozwiązanie problemu z serwerami BiometricPrompt hostowanymi w kontekstach niezwiązanych z aktywnością. (Ife255)

Wersja 1.2.0-alpha04

17 listopada 2021 r.

androidx.biometric:biometric:1.2.0-alpha04androidx.biometric:biometric-ktx:1.2.0-alpha04 są dostępne. Wersja 1.2.0-alpha04 zawiera te commity.

Nowe funkcje

  • Ulepszona obsługa promptu biometrycznego w przypadku fragmentów hostowanych przez konteksty inne niż aktywności (I9312b)

Zmiany interfejsu API

Poprawki błędów

  • Rozwiązaliśmy problem z interfejsem API 29, który powodował, że w przypadku niektórych urządzeń (w tym emulatorów) pojawiał się błąd anulowania przy użyciu kodu PIN, wzoru lub hasła. Pamiętaj, że w przypadku niektórych urządzeń z interfejsem API 29 może to spowodować wyświetlenie użytkownikowi prośby o odblokowanie ekranu, nawet jeśli dane biometryczne są dostępne i zarejestrowane. (b/142740104)
  • Rozwiązaliśmy problem 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-alpha03

24 lutego 2021 r.

androidx.biometric:biometric:1.2.0-alpha03androidx.biometric:biometric-ktx:1.2.0-alpha03 są dostępne. Wersja 1.2.0-alpha03 zawiera te komisy.

Zmiany interfejsu API

  • Dodaliśmy zawieszanie rozszerzeń współrzędnych dla CredentialAuthPrompt podobnie jak w przypadku innych typów AuthPrompt. (I9ac70)

Wersja 1.2.0-alpha02

27 stycznia 2021 r.

androidx.biometric:biometric:1.2.0-alpha02androidx.biometric:biometric-ktx:1.2.0-alpha02 są dostępne. Wersja 1.2.0-alpha02 zawiera te commity.

Zmiany w interfejsie API

  • Niektóre pola AuthPrompt, które były wcześniej ustawiane za pomocą konstruktora, zostały przekształcone w argumenty metody startAuthentication(...). (I18896, b/174098373)
  • Dodano wymagania dotyczące minimalnego poziomu interfejsu API dla typów AuthPrompt, które są obsługiwane w ograniczonym zakresie lub wcale nie są obsługiwane w starszych wersjach Androida. (I18896)
  • Dodano metody gettera dla wszystkich pól AuthPrompt, które są ustawiane za pomocą konstruktora. (I18896)
  • Dodano zawieszanie rozszerzeń Kotlin na potrzeby uwierzytelniania biometrycznego przez interfejsy API AuthPrompt. Te funkcje zwracają żądanie AuthenticationResult bezpośrednio w przypadku powodzenia lub 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 dla urządzenia z czujnikiem linii papilarnych w Androidzie 10 (poziom interfejsu API 29). (I72420, b/176921662)
  • Rozwiązaliśmy problem, który powodował, że BiometricManager.canAuthenticate(int) zwracał nieprawidłowy kod stanu na urządzeniu bez sprzętu biometrycznego i bez zarejestrowanego kodu PIN, wzoru lub hasła w Androidzie 10 (poziom interfejsu API 29) i w poprzednich wersjach pakietu SDK. (I79b7d, b/174505824)
  • Rozwiązaliśmy problem z wyciekiem pamięci, który występował, gdy BiometricPrompt był hostowany w fragmencie o krótszym cyklu życia niż powiązana z nim aktywność. (I70864, b/167014923)

Wersja 1.2.0-alpha01

2 grudnia 2020 r.

androidx.biometric:biometric:1.2.0-alpha01 i androidx.biometric:biometric-ktx:1.2.0-alpha01 zostały udostępnione. Wersja 1.2.0-alpha01 zawiera te commity.

Nowe funkcje

  • Wprowadziliśmy moduł androidx.biometric:biometric-ktx, który dodaje do androidx.biometric:biometric interfejsy API i rozszerzenia na potrzeby Kotlina.

Zmiany w interfejsie API

  • Dodano nowe interfejsy API AuthPrompt do tworzenia obiektu BiometricPrompt i przeprowadzania uwierzytelniania. Te interfejsy API nie wymagają, aby obiekt BiometricPrompt był tworzony w wczesnym wywołaniu zwrotnym cyklu życia, takim jak onCreate. (I19022)
  • Dodano rozszerzenia Kotlina do elementów FragmentFragmentActivity dla nowych interfejsów API AuthPrompt. (Iaf98c)

Wersja 1.1.0

Wersja 1.1.0

27 stycznia 2021 r.

androidx.biometric:biometric:1.1.0 został zwolniony. Wersja 1.1.0 zawiera te zatwierdzenia.

Najważniejsze zmiany od wersji 1.0.0

  • Dodano obsługę nowych funkcji uwierzytelniania biometrycznego i aktualizacji interfejsów API wprowadzonych w Androidzie 11.
  • znacznie zmniejszyliśmy rozmiar biblioteki aplikacji (w niektórych przypadkach o ponad 100 KB);
  • Usunięto różne źródła wycieków pamięci, które były wcześniej powodowane przez bibliotekę.
  • Rozwiązaliśmy problemy związane z błędami weryfikacji klas, które mogły wpływać na wydajność na starszych wersjach Androida.
  • Wprowadziliśmy dodatkowe ulepszenia stabilności i działania biblioteki.

Wersja 1.1.0-rc01

11 listopada 2020 roku

androidx.biometric:biometric:1.1.0-rc01 został zwolniony. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.

Poprawki błędów

  • Rozwiązaliśmy problem występujący na niektórych urządzeniach, w którym niektóre działania (uwierzytelnianie, anulowanie itp.) czasami powodowały błąd NullPointerException. (b/151316421)
  • Rozwiązaliśmy problem, który powodował, że niektóre urządzenia Pixel zgłaszały nieprawidłowy stan podczas sprawdzania biometrii klasy 3 na Androidzie 10 za pomocą funkcji BiometricManager#canAuthenticate(int). (b/170406186)

Wersja 1.1.0-beta01

1 października 2020 roku

Usługa androidx.biometric:biometric:1.1.0-beta01 została zwolniona. Wersja 1.1.0-beta01 zawiera te commity.

Nowe funkcje

  • Znacznie zmniejszyliśmy rozmiar pliku APK biblioteki (w niektórych przypadkach o ponad 100 KB w skompresowanej formie) przez zastąpienie animacji dialogów zasobami statycznymi w Androidzie 8.1 i starszych. (I4844e)
  • BiometricPrompt teraz automatycznie przechodzi do uwierzytelniania za pomocą danych logowania na urządzeniu (jeśli jest to dozwolone) we wszystkich obsługiwanych wersjach Androida, gdy uwierzytelnianie biometryczne jest zablokowane. (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 błąd NullPointerException w pliku FingerprintDialogFragment. (b/167951429)
  • Rozwiązaliśmy problem polegający na tym, że w BiometricManager do wywołania metody odbicia lustrzanego użyto nieprawidłowego typu CryptoObject. (b/165824669)
  • Rozwiązanie problemu polegającego na tym, że wyświetlenie BiometricPrompt ponownie wkrótce po odrzuceniu powodowało automatyczne odrzucenie nowego promptu na niektórych urządzeniach z Androidem 10. (b/157783075)
  • Naprawiono wycieki pamięci związane z użyciem FingerprintManagerCompat. (b/165840273)
  • Rozwiązaliśmy problemy z nieprawidłowym ukrywaniem lub wyświetlaniem interfejsu okna dialogowego odcisku palca na niektórych urządzeniach z Androidem 9. (b/154868505, b/148350291)

Wersja 1.1.0-alfa02

19 sierpnia 2020 r.

Usługa androidx.biometric:biometric:1.1.0-alpha02 została zwolniona. Wersja 1.1.0-alfa02 zawiera te zatwierdzenia.

Nowe funkcje

  • BiometricManager#canAuthenticate() może teraz zwrócić BIOMETRIC_STATUS_UNKNOWN, aby wskazać, że użytkownik może nadal uwierzytelnić się, lub BIOMETRIC_ERROR_UNSUPPORTED, aby wskazać, że urządzenie nie obsługuje danej kombinacji uwierzytelniania.
  • BiometricPrompt#authenticate() można teraz używać do uwierzytelniania danych logowania urządzenia za pomocą powiązanego konta CryptoObject na Androidzie 11 (poziom interfejsu API 30) i nowszym tylko.

Zmiany w interfejsie API

Poprawki błędów

  • Naprawiliśmy wycieki pamięci zgłoszone przez LeakCanary w BiometricFragment i BiometricViewModel. (b/144919472)
  • Upewnij się, że funkcja 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 usługa BiometricPrompt nie obsługiwała prawidłowo tymczasowej blokady na niektórych poziomach interfejsu API. (9acfce9)
  • Rozwiązaliśmy problem, który powodował, że na niektórych poziomach interfejsu API funkcja BiometricPrompt zwracała nieprawidłowy kod błędu w przypadku urządzenia niezabezpieczonego danymi logowania blokady ekranu. (b/148626482)
  • Naprawiono błąd, który powodował, że interfejsy BiometricManagerBiometricPrompt zwracały nieprawidłowe kody błędów w przypadku urządzenia bez zaimplementowanej blokady ekranu na niektórych poziomach interfejsu API. (891c6e0)

Wersja 1.1.0-alpha01

24 czerwca 2020 r.

androidx.biometric:biometric:1.1.0-alpha01 został zwolniony. Wersja 1.1.0-alfa01 zawiera te zatwierdzenia.

Nowe funkcje

  • Zrefaktoryzowaliśmy implementację biblioteki wewnętrznej, aby rozwiązać problem potencjalnych źródeł wycieków pamięci i innych niezamierzonych zachowań:
    • Wewnętrzne fragmenty udostępniają teraz i utrwalają dane za pomocą elementu ViewModel powiązanego z cyklem aktywności aplikacji klienckiej.
    • Uwierzytelnianie za pomocą danych logowania na urządzeniu w wersjach Androida starszych niż 10 (poziom interfejsu API 29) nie powoduje już uruchamiania przez aplikację klienta przejrzystej aktywności.

Poprawki błędów

  • Rozwiązano ostrzeżenia o wycofaniu dotyczące użycia interfejsu FingerprintManagerCompat. (b/142967618)
  • Zmieniliśmy sposób wywoływania metod platformy chronionych przez pakiet SDK, aby uniknąć problemów z weryfikacją klasy w starszych wersjach Androida. (94beb4b)
  • Biblioteka nie eksportuje już zależności Gradle, które nie są częścią publicznego interfejsu API. (f289d9e)

Wersja 1.0.1

Wersja 1.0.1

18 grudnia 2019 r.

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

Poprawki błędów

  • Rozszerzenie istniejącego obejścia problemu polegającego na użyciu odcisku palca w przypadku uwierzytelniania opartego na kryptografii do znanych dostawców, którzy są dotknięci problemem, a także ograniczenie go do interfejsu API 28 (b/143361271).
  • Rozwiązanie problemu na niektórych urządzeniach, w których przypadku okno dialogowe funkcji biometrycznej było wyświetlane pod nakładką systemu (b/143230260).
  • Rozwiązano kilka problemów z setDeviceCredentialAllowed(true) (b/143091227, b/143097321, b/143653944)
  • Rozwiązaliśmy problem występujący w niektórych wersjach Androida, w których funkcja onAuthenticationSuccess nie była zawsze wywoływana po potwierdzeniu przez użytkownika danych logowania do urządzenia (b/145232806)
  • Rozwiązaliśmy problem występujący w niektórych wersjach Androida, w których funkcja onAuthenticationError nie była zawsze wywoływana, gdy prompt był odrzucany po przechyleniu ekranu (b/145230042).
  • Rozwiązanie problemu w niektórych wersjach Androida, w których po wyświetleniu niektórych kodów błędów nie można było zamknąć okna z prośbą (b/143683687)
  • Usunięto potencjalny błąd NullPointerException w funkcji BiometricFragment (b/142599311).

Wersja 1.0.0

Wersja 1.0.0

7 listopada 2019 r.

androidx.biometric:biometric:1.0.0 jest publikowany bez zmian od 1.0.0-rc02. Wersja 1.0.0 zawiera te zatwierdzenia.

Najważniejsze funkcje wersji 1.0.0

  • Wersja zgodności interfejsów API BiometricPromptBiometricManager zaimplementowanych w Androidzie 10 z pełną obsługą funkcji od Androida 6.0 (poziom interfejsu API 23).
  • Wbudowane zarządzanie cyklem życia BiometricPrompt w ramach Fragment lub FragmentActivity
  • Specjalne traktowanie urządzeń, które podczas uwierzytelniania opartego na szyfrowaniu nieprawidłowo prezentują słabe dane biometryczne

Wersja 1.0.0-rc02

23 października 2019 r.

androidx.biometric:biometric:1.0.0-rc02 został zwolniony. 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 podają słabe dane biometryczne po wywołaniu uwierzytelniania opartego na kryptografii w interfejsach API w wersjach 28 i 29 (b/142150327).

Wersja 1.0.0-rc01

9 października 2019 r.

androidx.biometric:biometric:1.0.0-rc01 został zwolniony. Wersja 1.0.0-rc01 zawiera te zatwierdzenia:

Poprawki błędów

  • Usunięto potencjalne awarie FingerprintDialogFragment, gdy jest ona zamykana podczas obracania ekranu (b/141356362).
  • Rozwiązaliśmy problem, który powodował, że otrzymanie pustego pola AuthenticationResult z interfejsu API platformy mogło powodować awarię (b/138862251)
  • Usunięto awarie spowodowane zamknięciem BiometricPrompt po onSaveInstanceState() (b/138825362, b/140447194)

Wersja 1.0.0-beta02

18 września 2019 r.

androidx.biometric:biometric:1.0.0-beta02 został zwolniony. Wersja 1.0.0-beta02 zawiera te zatwierdzenia.

Poprawki błędów

  • Rozwiązaliśmy problemy z obsługą danych logowania na urządzeniu w wersji 1.0.0-beta01
  • Usunięto zależności od Javy 8 i przenieśiono je do Javy 7 (b/140508526)
  • FingerprintHelperFragment teraz prawidłowo zgłasza błąd ERROR_HW_NOT_PRESENT, gdy nie wykryto czytnika linii papilarnych (b/140427586)

Wersja 1.0.0-beta01

29 sierpnia 2019 r.

androidx.biometric:biometric:1.0.0-beta01 został zwolniony. Wersja 1.0.0-beta01 zawiera te commity.

Nowe funkcje

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

Z przyjemnością wprowadzamy też te funkcje z Androida 10 do biblioteki biometrycznej AndroidaX:

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

W Androidzie 10 biblioteka wywoła odpowiednie metody z interfejsu API platformy. W przypadku starszych poziomów interfejsu API biblioteka będzie emulować to zachowanie.

Zmiany interfejsu API

  • Dodano konstruktor specyficzny dla fragmentu dla promptu biometrycznego (b/131980596)
  • Zobacz sekcję „Nowe funkcje” powyżej.

Poprawki błędów

  • Dodanie obsługi danych logowania na urządzeniu w ramach funkcji BiometricPrompt dla L+
  • Poprawiono BimetricPrompt, aby używał publicznych stałych błędów (b/137788194).
  • Rozwiązanie problemu NullPointerException w funkcji BiometricPrompt.onAttach() (b/136103103)
  • Zmieniono zachowanie, aby nie zezwalać na anulowanie promptu biometrycznego przez zdarzenie dotykowe poza promptem (b/135684487)
  • Naprawiono awarię onAuthenticationError, gdy w Kotlin zwracana jest wartość null (b/128350861).
  • Fragment FingerprintDialogFragment można teraz stylizować (b/127878106)
  • FingerprintDialog jest teraz przewijany (b/126367887)
  • Naprawiono błąd, który powodował, że obrót okna biometrycznego powoduje podniesienie obiektu IllegalStateException (b/124153656) (b/123811924).
  • Poprawiono niespójności w interfejsach API na poziomach 23–27. (b/124066957)
  • Rozwiązaliśmy problem polegający na tym, że okno logowania z odczytem linii papilarnej odczytywało nieprawidłowy tekst za pomocą TalkBack. (b/123572331)

Wersja 1.0.0-alpha04

3 kwietnia 2019 r.

androidx.biometric:biometric:1.0.0-alpha04 został zwolniony. Zmiany zawarte w tej wersji znajdziesz tutaj.

Poprawki błędów

  • Naprawione fragmenty biometryczne nie zawsze są usuwane. (b/121117380)
  • Naprawiono błąd: BiometricPrompt zezwala tylko na 1 występowanie elementu BiometricPrompt.AuthenticationCallback (b/123857949).
  • Rozwiązano problem z niespójnym zachowaniem błędu BiometricPrompt w wersji systemu i wersji zgodności. (b/123572326)
  • Naprawiono wywołanie zwrotne onAuthenticationError()@NotNull errString, które powoduje NullPointerException w czasie wykonywania (b/123167217)
  • Naprawiono androidx.BiometricPrompt awarie przycisku Anuluj (b/122054485)
  • Poprawiono błąd polegający na tym, że androidx.biometric.PromptInfo tytuł/opis nie zmieniał się w Androidzie P (b/122856773).

Wersja 1.0.0-alpha03

17 grudnia 2018 r.

Poprawki błędów

  • Rozwiązano problemy związane z fragmentami
  • Na urządzeniach O i starszych błędy blokady są zwracane natychmiast, aby zachować zgodność z urządzeniami P i nowszymi.