生物特徵辨識
| 最近更新時間 | 穩定版 | 候選版 | Beta 版 | Alpha 版 |
|---|---|---|---|---|
| 2025 年 5 月 20 日 | 1.1.0 | - | - | 1.4.0-alpha04 |
宣告依附元件
如要在 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-alpha04 版本
2025 年 5 月 20 日
發布 androidx.biometric:biometric:1.4.0-alpha04。1.4.0-alpha04 版包含這些修訂版本。
新功能
- 一律在 Wear 應用程式內部使用
KeyguardManagerAPI (I9b7fd)
API 變更
- 新增特權驗證器位元
IDENTITY_CHECK(I706bb)
1.4.0-alpha03 版
2025 年 3 月 26 日
發布 androidx.biometric:biometric:1.4.0-alpha03。1.4.0-alpha03 版包含這些修訂版本。
新功能
- 推出新的驗證進入點
registerForAuthenticationResult()API,以取代androidx.biometric:biometric-ktx模組和androidx.BiometricPrompt。這個新 API 是以 Activity Result API 為範本,可與 Kotlin 和 Java 開發作業無縫相容。
API 變更
- 將
ERROR_MORE_OPTIONS_BUTTON重新命名為ERROR_CONTENT_VIEW_MORE_OPTIONS_BUTTON(I71d07) - 為
IdentityCredential新增@Deprecated註解,以便與架構保持一致。(I6ac90、b/140252778、b/217942278、b/251211046、b/239955609) - [1/3] 移除 biometric.auth 和 Kotlin 程式庫,這兩者將重新設計。(I2f67c)。
- [2/3] 新增
AuthenticationRequest做為驗證輸入內容,並將AuthenticationResult設為驗證結果類型。AuthenticationRequest有兩種,分別是建構函式和 (I50fd9)BiometricRequest用於生物特徵辨識驗證,搭配不同的Strength和選用的Fallback。CredentialRequest:僅限裝置憑證驗證。
- [3/3] 為生物特徵辨識模組新增活動結果模式 API。具體來說,請新增名為
registerForAuthenticationResult()的註冊 API,註冊AuthenticationResultCallback和選用的onAuthenticationFailedCallback,並產生AuthenticationResultLauncher,以便透過所有輸入內容啟動驗證程序。(I2b06e)。
修正錯誤
- 這個程式庫現在使用 JSpecify 空值註解,這是類型用法。Kotlin 開發人員應使用下列編譯器引數,確保正確使用方式:
-Xjspecify-annotations=strict(這是 Kotlin 編譯器 2.1.0 版起的預設值)。(Ib49b4、b/326456246) - 修正無法將片段
androidx.biometric.FingerprintDialogFragment例項化的問題。(I51c4a、b/181805603)。 - 修正問題:按下裝置的主畫面按鈕時,
BiometricPrompt不會關閉。(I8c393、I0ca8c、b/149770989)。 - 修正了在 API 34/35 上停用生物特徵辨識應用程式驗證功能時,錯誤代碼不一致的問題。(Ice99d、b/386918213)
- 在舊裝置上強制執行高強度生物辨識驗證,也適用於結合式驗證器。(Ibb853、I5cfb3、b/257670132)。
1.4.0-alpha02 版
2024 年 8 月 7 日
發布 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#setContentViewBiometricPrompt.PromptInfo#getContentViewPromptContentView介面PromptVerticalListContentView類別PromptContentViewWithMoreOptionsButton類別 (僅適用於特權應用程式)
- 新增 API 以支援標誌 (僅限特權應用程式)
BiometricPrompt.PromptInfo.Builder#setLogoBitmapBiometricPrompt.PromptInfo.Builder#setLogoResBiometricPrompt.PromptInfo.Builder#setLogoDescriptionBiometricPrompt.PromptInfo#getLogoBitmapBiometricPrompt.PromptInfo#getLogoResBiometricPrompt.PromptInfo#getLogoDescription58c35c6
修正錯誤
- 將
compileSdk更新為 35 5dc41be
1.4.0-alpha01 版
2024 年 5 月 29 日
發布 androidx.biometric:biometric:1.4.0-alpha01 和 androidx.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-alpha05 和 androidx.biometric:biometric-ktx:1.2.0-alpha05。1.2.0-alpha05 版本包含以下修訂項目。
API 變更
- 為 Android 13 的
android.security.identity.PresentationSession新增CryptoObject支援 (C5f1ec、b/197965513)。
修正錯誤
- 已移除不必要的資源變化版本,以減少程式庫大小。(I3601e、b/220178553)。
- 修正在非活動結構定義下代管的
BiometricPrompt的問題。(Ife255)
1.2.0-alpha04 版本
2021 年 11 月 17 日
發布 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 的部分裝置,即使可以使用生物特徵辨識並註冊,使用者可能仍會收到螢幕鎖定提示。(b/142740104)
- 修正 API 29 問題,沒有生物特徵辨識硬體的裝置無法正確回到 PIN 碼/解鎖圖案/密碼的問題 (b/170517889)
1.2.0-alpha03 版本
2021 年 2 月 24 日
發布 androidx.biometric:biometric:1.2.0-alpha03 和 androidx.biometric:biometric-ktx:1.2.0-alpha03。1.2.0-alpha03 版本包含以下修訂項目。
API 變更
- 為 CredentialsAuthPrompt 新增停權協同程式擴充功能,類似其他存在於 AuthPrompt 類型中的擴充功能 (I9ac70)
1.2.0-alpha02 版本
2021 年 1 月 27 日
發布 androidx.biometric:biometric:1.2.0-alpha02 和 androidx.biometric:biometric-ktx:1.2.0-alpha02。1.2.0-alpha02 版本包含以下修訂項目。
API 變更
- 將先前透過建構工具設定的某些
AuthPrompt欄位重構為startAuthentication(...)方法引數 (I18896、b/174098373)。 - 為
AuthPrompt類型新增最低 API 級別規定,並為舊版 Android 提供有限支援或不支援 (I18896) - 已為透過建構工具設定的所有
AuthPrompt欄位新增 getter 方法。(I18896) - 新增透過
AuthPromptAPI 進行生物特徵辨識驗證的停權協同程式 Kotlin 擴充功能。這些函式會在成功後直接傳回AuthenticationResult,或擲回錯誤或失敗的例外狀況 (憑證遭拒)。(Iffc9e)
修正錯誤
- 修正
BiometricManager.canAuthenticate(int)有時會針對裝置回傳錯誤狀態碼的問題,該裝置在 Android 10(API 級別 29)搭載了指紋感應器。(I72420、b/176921662)。 - 修正了
BiometricManager.canAuthenticate(int)有時會針對裝置回傳錯誤狀態碼的問題,該裝置沒有在 Android 10(API 級別 29)以及早期版本 SDK 上搭載生物特徵辨識硬體,沒有註冊 PIN 碼、解鎖圖案或密碼。(I79b7d、b/174505824)。 - 修正記憶體流失問題,當
BiometricPrompt託管於片段上且生命週期比其相關活動時間更短時會發生此問題。(I70864、b/167014923)。
1.2.0-alpha01 版本
2020 年 12 月 2 日
發布 androidx.biometric:biometric:1.2.0-alpha01 和 androidx.biometric:biometric-ktx:1.2.0-alpha01。1.2.0-alpha01 版包含此連結所列的修訂項目。
新功能
- 推出
androidx.biometric:biometric-ktx模組,並在androidx.biometric:biometric上方新增 Kotlin 專用的 API 和擴充功能。
API 變更
- 新增
AuthPromptAPI,以建構BiometricPrompt並執行驗證。這些 API 不要求BiometricPrompt在早期生命週期回呼中建構,例如onCreate。(I19022)。 - 已將 Kotlin 擴充功能新增至
Fragment及FragmentActivity以用於新的AuthPromptAPI。(Iaf98c)
1.1.0 版本
1.1.0 版本
2021 年 1 月 27 日
發布 androidx.biometric:biometric:1.1.0。1.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-beta01。1.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/154868505、b/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 變更
- 建構
BiometricPrompt例項時,可選擇是否要提供明確的Executor(I6bb8a) - 新增 Android 11 中的
BiometricManager#canAuthenticate(int)方法。(Ia3f1c) - 更新
BiometricPrompt,以新增對 Android 11 的BiometricManager.Authenticators常數支援。(I39bd8) - 新增 Android 11 中的
BiometricPrompt.AuthenticationResult#getAuthenticationType()方法。(Icfad5) - 新增 Android 11 中的
BiometricPrompt.ERROR_SECURITY_UPDATE_REQUIRED錯誤代碼。(I6610b)。 - 更新
BiometricPrompt.CryptoObject,以支援 Android 11 (API 級別 30) 以上版本的IdentityCredential(僅限)。(I1d9f6)。
修正錯誤
- 修正 LeakCanary 在
BiometricFragment和BiometricViewModel中報告的記憶體流失問題。(b/144919472) - 確認
BiometricViewModel不會再從背景執行緒呼叫MutableLiveData#setValue()。(b/159983244) - 修正
BiometricPrompt無法在部分 API 層級正確處理暫時鎖定的問題。(9acfce9) - 修正問題:
BiometricPrompt會在部分 API 級別傳回未啟用螢幕鎖定憑證的裝置,並傳回錯誤代碼。(b/148626482) - 修正問題:
BiometricManager及BiometricPrompt會針對在部分 API 級別未實作鍵盤鎖的裝置,傳回錯誤的錯誤代碼。(891c6e0)
1.1.0-alpha01 版本
2020 年 6 月 24 日
發布 androidx.biometric:biometric:1.1.0-alpha01。1.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.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)
- 修正
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 的主要功能
BiometricPrompt和BiometricManagerAPI 的相容性版本,在 Android 10 中實作,支援 Android 6.0 (API 23) 的所有功能Fragment或FragmentActivity中的BiometricPrompt內建生命週期管理- 針對在加密式驗證期間錯誤顯示生物特徵辨識資料的裝置,進行特殊處理
1.0.0-rc02 版
2019 年 10 月 23 日
發布了 androidx.biometric:biometric:1.0.0-rc02。1.0.0-rc02 版包含此連結所列的修訂項目。
修正錯誤
- 為某些裝置新增權變措施,已知這些裝置在 API 版本 28 和 29 上叫用密碼編譯驗證時,錯誤提供生物特徵辨識 (b/142150327)
1.0.0-rc01 版
2019 年 10 月 9 日
發布了 androidx.biometric:biometric:1.0.0-rc01。1.0.0-rc01 版本包含以下修訂項目。
修正錯誤
- 修正在螢幕旋轉時關閉
FingerprintDialogFragment可能引發當機的問題 (b/141356362) - 修正從架構 API 收到空值
AuthenticationResult可能會導致當機的問題 (b/138862251) - 修正因
BiometricPrompt在onSaveInstanceState()之後關閉而導致當機的問題 (b/138825362、b/140447194)
1.0.0-beta02 版
2019 年 9 月 18 日
發布了 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-beta01 版
2019 年 8 月 29 日
發布了 androidx.biometric:biometric:1.0.0-beta01。1.0.0-beta01 版包含此連結所列的修訂項目。
新功能
我們為 BiometricPrompt 推出了第二種建構函式,讓它可以代管於 Fragment (相較於現有的建構函式,也就是需要 FragmentActivity)。
我們也很高興將 Android 10 的下列功能加入 AndroidX 生物特徵辨識程式庫:
BiometricManager#canAuthenticateBiometricPrompt.PromptInfo#setConfirmationRequiredBiometricPrompt.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 以上版本保持一致