生物特徵辨識

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

宣告依附元件

如要新增生物特徵辨識的依附元件,必須將 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 變更

  • 為 CredentialAuthPrompt 新增停權協同程式擴充功能 類似其他 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)
  • 修正問題:當裝置沒有生物特徵辨識硬體,且在 Android 10 (API 級別 29) 及舊版 SDK 中,裝置沒有註冊 PIN 碼、解鎖圖案或密碼,BiometricManager.canAuthenticate(int) 會傳回錯誤的狀態碼。(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)
  • 修正系統版本和 Compat 版本之間的 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 以上版本保持一致