生物特徵辨識

使用生物特徵辨識或裝置憑證進行驗證,以及執行加密編譯作業。
最近更新時間 穩定版 候選版 Beta 版 Alpha 版
2024 年 8 月 7 日 1.1.0 - - 1.4.0-alpha02

宣告依附元件

如要在 Biometric 上新增依附元件,您必須將 Google Maven 存放區新增至專案。詳情請參閱 Google 的 Maven 存放區

在應用程式或模組的 build.gradle 檔案中,新增您需要的構件依附元件:

Groovy

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")
}

如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。

意見回饋

您的意見可協助我們改善 Jetpack。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。

建立新問題

詳情請參閱 Issue Tracker 文件

1.4 版

1.4.0-alpha02 版

2024 年 8 月 7 日

發布 androidx.biometric:biometric:1.4.0-alpha02androidx.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-alpha01 版

2024 年 5 月 29 日

發布 androidx.biometric:biometric:1.4.0-alpha01androidx.biometric:biometric-ktx:1.4.0-alpha01。這個版本是在內部分支版本中開發,並以 Android 15 Beta 2 為目標。

修正錯誤

  • 更新 UI,使其與 Android 15 中的平台變更保持一致

1.2.0 版本

1.2.0-alpha05 版本

2022 年 9 月 21 日

發布 androidx.biometric:biometric:1.2.0-alpha05androidx.biometric:biometric-ktx:1.2.0-alpha051.2.0-alpha05 版本包含以下修訂項目。

API 變更

  • 為 Android 13 的 android.security.identity.PresentationSession 新增 CryptoObject 支援 (C5f1ecb/197965513)。

修正錯誤

  • 已移除不必要的資源變化版本,以減少程式庫大小。(I3601eb/220178553)。
  • 已修正在非活動結構定義中代管的 BiometricPrompt 問題。(Ife255)。

1.2.0-alpha04 版本

2021 年 11 月 17 日

發布 androidx.biometric:biometric:1.2.0-alpha04androidx.biometric:biometric-ktx:1.2.0-alpha041.2.0-alpha04 版本包含以下修訂項目。

新功能

  • 針對由非活動結構定義代管的片段,改善 BiometricPrompt 支援功能 (I9312b)

API 變更

修正錯誤

  • 修正 API 29 問題;部分裝置 (包括模擬器) 重新回到 PIN 碼/解鎖圖案/密碼時會收到取消錯誤。請注意,針對使用 API 29 的部分裝置,即使可以使用生物特徵辨識並註冊,使用者可能仍會收到螢幕鎖定提示。(b/142740104)
  • 修正 API 29 問題,沒有生物特徵辨識硬體的裝置無法正確回到 PIN 碼/解鎖圖案/密碼的問題 (b/170517889)

1.2.0-alpha03 版本

2021 年 2 月 24 日

發布 androidx.biometric:biometric:1.2.0-alpha03androidx.biometric:biometric-ktx:1.2.0-alpha031.2.0-alpha03 版本包含以下修訂項目。

API 變更

  • 為 CredentialsAuthPrompt 新增停權協同程式擴充功能,類似其他存在於 AuthPrompt 類型中的擴充功能 (I9ac70)

1.2.0-alpha02 版本

2021 年 1 月 27 日

發布 androidx.biometric:biometric:1.2.0-alpha02androidx.biometric:biometric-ktx:1.2.0-alpha021.2.0-alpha02 版本包含以下修訂項目。

API 變更

  • 將先前透過建構工具設定的某些 AuthPrompt 欄位重構為 startAuthentication(...) 方法引數 (I18896b/174098373)。
  • AuthPrompt 類型新增最低 API 級別規定,並為舊版 Android 提供有限支援或不支援 (I18896)
  • 已為透過建構工具設定的所有 AuthPrompt 欄位新增 getter 方法。(I18896)
  • 新增透過 AuthPrompt API 進行生物特徵辨識驗證的停權協同程式 Kotlin 擴充功能。這些函式會在成功後直接傳回 AuthenticationResult,或擲回錯誤或失敗的例外狀況 (憑證遭拒)。(Iffc9e)

修正錯誤

  • 修正 BiometricManager.canAuthenticate(int) 有時會針對裝置回傳錯誤狀態碼的問題,該裝置在 Android 10(API 級別 29)搭載了指紋感應器。(I72420b/176921662)。
  • 修正了 BiometricManager.canAuthenticate(int) 有時會針對裝置回傳錯誤狀態碼的問題,該裝置沒有在 Android 10(API 級別 29)以及早期版本 SDK 上搭載生物特徵辨識硬體,沒有註冊 PIN 碼、解鎖圖案或密碼。(I79b7db/174505824)。
  • 修正記憶體流失問題,當 BiometricPrompt 託管於片段上且生命週期比其相關活動時間更短時會發生此問題。(I70864b/167014923)。

1.2.0-alpha01 版本

2020 年 12 月 2 日

發布 androidx.biometric:biometric:1.2.0-alpha01androidx.biometric:biometric-ktx:1.2.0-alpha011.2.0-alpha01 版包含此連結所列的修訂項目。

新功能

  • 推出 androidx.biometric:biometric-ktx 模組,並在 androidx.biometric:biometric 上方新增 Kotlin 專用的 API 和擴充功能。

API 變更

  • 新增 AuthPrompt API,以建構 BiometricPrompt 並執行驗證。這些 API 要求 BiometricPrompt 在早期生命週期回呼中建構,例如 onCreate。(I19022)。
  • 已將 Kotlin 擴充功能新增至 FragmentFragmentActivity 以用於新的 AuthPrompt API。(Iaf98c)

1.1.0 版本

1.1.0 版本

2021 年 1 月 27 日

發布 androidx.biometric:biometric:1.1.01.1.0 版本包含以下修訂項目。

自 1.0.0 版起的重大異動

  • 新增回溯相容性支援,用於在 Android 11 中新推出的生物特徵辨識驗證功能及 API 更新
  • 大幅縮減程式庫中的應用程式大小 (在某些情況下可縮減超過 100 KB)。
  • 移除程式庫先前造成的記憶體流失來源。
  • 修正類別驗證失敗的問題,該問題可能會對舊版 Android 效能造成影響。
  • 針對程式庫的穩定性和行為進行多項額外改善。

1.1.0-rc01 版本

2020 年 11 月 11 日

發布 androidx.biometric:biometric:1.1.0-rc01查看 1.1.0-rc01 版的修訂項

修正錯誤

  • 修正部分裝置的問題,某些操作 (例如驗證、取消等) 有時會擲回 NullPointerException 的問題。(b/151316421)
  • 修正問題:部分 Pixel 裝置在 Android 10 上使用 BiometricManager#canAuthenticate(int) 檢查類別 3 的生物特徵辨識情況時,會回報錯誤狀態(b/170406186)

1.1.0-beta01 版本

2020 年 10 月 1 日

發布 androidx.biometric:biometric:1.1.0-beta011.1.0-beta01 版包含此連結所列的修訂項目。

新功能

  • 在 Android 8.1 及以下版本中,將對話方塊動畫替換為靜態資產,可大幅減少程式庫的 APK 佔用空間 (某些情況下壓縮後減少 100 KB 以上)。(I4844e)。
  • 當鎖定生物特徵驗證功能時,BiometricPrompt 所有支援的 Android 版本都會自動改用裝置憑證驗證 (如果允許)。(b/149579143)

修正錯誤

  • 修正 BiometricPrompt 在某些沒有指紋感應器的 Android 9 裝置上當機的問題 (b/151443237)
  • 修正了 FingerprintDialogFragment 中的潛在 NullPointerException。(b/167951429)
  • 已修正以下問題:在 BiometricManager 中使用反射方法叫用錯誤的 CryptoObject 類型。(b/165824669)
  • 修正問題:BiometricPrompt 在關閉後不久再次顯示,導致部分 Android 10 裝置上的新提示自動關閉 (b/157783075)
  • 修正與使用 FingerprintManagerCompat 相關的記憶體流失問題 (b/165840273)
  • 修正部分 Android 9 裝置的指紋對話方塊 UI 未顯示或顯示錯誤的問題。(b/154868505b/148350291)

1.1.0-alpha02 版本

2020 年 8 月 19 日

androidx.biometric:biometric:1.1.0-alpha02 發布。查看 1.1.0-alpha02 版的修訂項

新功能

  • BiometricManager#canAuthenticate() 可能會傳回 BIOMETRIC_STATUS_UNKNOWN,表示使用者可能仍可驗證,或 BIOMETRIC_ERROR_UNSUPPORTED 表示裝置不支援特定驗證器組合。
  • BiometricPrompt#authenticate() 現在可以在 Android 11 (API 級別 30) 以上版本 (僅限) 透過相關聯的 CryptoObject 進行裝置憑證驗證。

API 變更

修正錯誤

  • 修正 LeakCanary 在 BiometricFragmentBiometricViewModel 中報告的記憶體流失問題。(b/144919472)
  • 確認 BiometricViewModel 不會再從背景執行緒呼叫 MutableLiveData#setValue()。(b/159983244)
  • 修正 BiometricPrompt 無法在部分 API 級別中正確處理暫時鎖定的問題。(9acfce9)。
  • 修正問題:BiometricPrompt 會在部分 API 級別,針對不安全裝置,傳回錯誤的錯誤代碼。(b/148626482)
  • 修正問題:在部分 API 級別未實作 Keyguard 的裝置上,BiometricManagerBiometricPrompt 會傳回錯誤錯誤代碼。(891c6e0)。

1.1.0-alpha01 版本

2020 年 6 月 24 日

發布 androidx.biometric:biometric:1.1.0-alpha011.1.0-alpha01 版包含以下修訂項目。

新功能

  • 重構內部程式庫實作以解決記憶體流失及其他非預期行為的潛在來源:
    • 內部片段現在可以共用及保留資料,其中使用與用戶端應用程式活動生命週期建立關聯的 ViewModel
    • 在 Android 10 (API 級別 29) 之前的裝置憑證驗證,不會在用戶端應用程式中啟動透明化活動。

修正錯誤

  • 解決與使用 FingerprintManagerCompat 相關的淘汰警示(b/142967618)
  • 變更呼叫 SDK 限制的平台方法,避免在早期 Android 版本上發生類別驗證問題。(94beb4b)。
  • 不屬於公用 API 的 Gradle 依附元件將不再從程式庫匯出。(f289d9e)

1.0.1 版

1.0.1 版

2019 年 12 月 18 日

發布了 androidx.biometric:biometric:1.0.11.0.1 版包含此連結所列的修訂項目

修正錯誤

  • 將密碼編譯驗證現有的指紋回退權變措施延伸至已知的受影響供應商,同時限制在 API 28 中 (b/143361271)
  • 修正問題:在部分裝置上,生物特徵辨識對話方塊顯示在系統重疊畫面中 (b/143230260)
  • 修正 setDeviceCredentialAllowed(true) 的幾個問題 (b/143091227b/143097321b/143653944)
  • 修正問題:在某些 Android 版本中,系統不一定會在使用者確認裝置憑證後呼叫 onAuthenticationSuccess (b/145232806)
  • 修正問題:在某些 Android 版本中,如果提示已在旋轉時關閉,系統不一定會呼叫 onAuthenticationError (b/145230042)
  • 修正問題:在某些 Android 版本中,系統不會在收到特定錯誤代碼後關閉提示 (b/143683687)
  • 修正 BiometricFragment 中潛在的 NullPointerException (b/142599311)

1.0.0 版本

1.0.0 版本

2019 年 11 月 7 日

androidx.biometric:biometric:1.0.0 發布,且自 1.0.0-rc02 版以來皆無異動。1.0.0 版本包含這些修訂版本。

1.0.0 的主要功能

  • BiometricPromptBiometricManager API 的相容性版本,在 Android 10 中實作,支援 Android 6.0 (API 23) 的所有功能
  • FragmentFragmentActivity 中的 BiometricPrompt 內建生命週期管理
  • 針對在加密式驗證期間錯誤顯示生物特徵辨識資料的裝置,進行特殊處理

1.0.0-rc02 版

2019 年 10 月 23 日

發布了 androidx.biometric:biometric:1.0.0-rc021.0.0-rc02 版包含此連結所列的修訂項目

修正錯誤

  • 新增解決方法:在某些裝置上,已知在 API 版本 28 和 29 上叫用加密式驗證時,無法正確提供低度生物特徵辨識 (b/142150327)

1.0.0-rc01 版

2019 年 10 月 9 日

發布了 androidx.biometric:biometric:1.0.0-rc011.0.0-rc01 版本包含以下修訂項目

修正錯誤

  • 修正在螢幕旋轉時關閉 FingerprintDialogFragment 可能引發當機的問題 (b/141356362)
  • 修正從架構 API 收到空值 AuthenticationResult 可能會導致當機的問題 (b/138862251)
  • 修正因 BiometricPromptonSaveInstanceState() 之後關閉而導致當機的問題 (b/138825362b/140447194)

1.0.0-beta02 版

2019 年 9 月 18 日

發布了 androidx.biometric:biometric:1.0.0-beta021.0.0-beta02 版包含以下修訂項目

修正錯誤

  • 修正版本 1.0.0-beta01 中的裝置憑證支援問題
  • 移除 Java 8 依附元件,然後根據 Java 7 切換為不同版本 (b/140508526)
  • 在未偵測到指紋硬體時,FingerprintHelperFragment 現在可正確擲回 ERROR_HW_NOT_PRESENT (b/140427586)

1.0.0-beta01 版

2019 年 8 月 29 日

發布了 androidx.biometric:biometric:1.0.0-beta011.0.0-beta01 版包含此連結所列的修訂項目

新功能

我們為 BiometricPrompt 推出了第二個建構函式,讓它可以託管於 Fragment (不同於現有的建構函式,也就是需要 FragmentActivity)。

我們也很高興將 Android 10 的下列功能加入 AndroidX 生物特徵辨識程式庫:

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

在 Android 10 中,程式庫會叫用平台 API 的對應方法。在較舊的 API 級別中,程式庫會模擬這種行為。

API 變更

  • 新增生物特徵辨識提示的片段專屬建構函式 (b/131980596)
  • 請參閱上方的「新功能」一節。

修正錯誤

  • 為 L+ 新增 BiometricPrompt 裝置憑證支援
  • 已修正 BiometricPrompt 使用公開錯誤常數 (b/137788194)
  • 修正 BiometricPrompt.onAttach() 中的 NullPointerException (b/136103103)
  • 變更運作模式,禁止系統透過提示以外的觸控事件取消 BiometricPrompt (b/135684487)
  • 修正在 Kotlin 中傳回空值錯誤值時發生的 onAuthenticationError 當機問題 (b/128350861)
  • FingerprintDialogFragment 現已可設定樣式 (b/127878106)
  • FingerprintDialog 現在可以捲動瀏覽 (b/126367887)
  • 修正旋轉生物特徵辨識對話方塊時發生 IllegalStateException (b/124153656) (b/123811924) 的錯誤
  • 已修正 API 級別 23 至 27 中的不一致行為。(b/124066957)
  • 修正指紋登入對話方塊使用 Talkback 讀取錯誤文字的問題。(b/123572331)

1.0.0-alpha04 版本

2019 年 4 月 3 日

發布 androidx.biometric:biometric:1.0.0-alpha04。您可以前往這裡查看這個版本包含的修訂項目。

修正錯誤

  • 某些情況下,已修正的生物特徵辨識片段並不會遭到清除。(b/121117380)
  • 修正 BiometricPrompt 僅允許一個 BiometricPrompt.AuthenticationCallback 執行個體的問題 (b/123857949)
  • 修正系統版本和相容版本之間的 BiometricPrompt 不一致錯誤行為。(b/123572326)。
  • 修正透過 @NotNull errString 回呼 onAuthenticationError() 時會在執行階段引發 NullPointerException 的問題 (b/123167217)
  • 修正 androidx.BiometricPrompt 取消按鈕當機問題 (b/122054485)
  • 修正 androidx.biometric.PromptInfo 在 Android P 上未變更標題/說明的問題 (b/122856773)

1.0.0-alpha03 版本

2018 年 12 月 17 日

修正錯誤

  • 修正片段相關問題
  • 在 O 及以下版本的裝置上,鎖定錯誤將立即傳回,以便與 P 以上版本保持一致