生体認証
| 最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
|---|---|---|---|---|
| 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 に含まれる commit はこちらをご覧ください。
新機能
- 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 には、これらの commit が含まれています。
新機能
androidx.biometric:biometric-ktxモジュールとandroidx.BiometricPromptに代わる新しい認証エントリ ポイントregisterForAuthenticationResult()API を導入しました。この新しい 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には、ビルダー付きとビルダーなしの 2 種類があります。(I50fd9)BiometricRequest: 異なるStrengthとオプションのFallbackを使用する生体認証。CredentialRequest: デバイス認証情報のみの認証。
- [3/3] 生体認証モジュール用の新しい activity-result-pattern API を追加。具体的には、
registerForAuthenticationResult()という登録 API を追加します。この API はAuthenticationResultCallbackとオプションのonAuthenticationFailedCallbackを登録し、すべての入力で認証を開始するAuthenticationResultLauncherを返します。(I2b06e)
バグの修正
- このライブラリは、型使用である JSpecify nullness アノテーションを使用するようになりました。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 に含まれる commit はこちらをご覧ください。
新機能
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 ベータ版 2 を対象としています。
バグの修正
- Android 15 のプラットフォームの変更に合わせて UI を更新
バージョン 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 に含まれる commit については、こちらをご覧ください。
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 に含まれる commit については、こちらをご覧ください。
新機能
- アクティビティ以外のコンテキストでホストされるフラグメントに対する BiometricPrompt のサポートを改善しました。(I9312b)
API の変更
- Android 12 の BiometricManager.Strings API のサポートを追加しました。(I12f2d)
- ターゲットとソースの互換性を Java 7 から Java 8 に変更しました。(I16129)
バグの修正
- 一部のデバイス(エミュレータを含む)で PIN、パターン、パスワードにフォールバックするとキャンセル エラーが発生する API 29 の問題を修正しました。なお、API 29 の一部のデバイスでは、生体認証が使用可能で登録されていても、画面ロックのプロンプトが表示されることがあります。(b/142740104)
- 生体認証ハードウェアのないデバイスが PIN、パターン、パスワードに正しくフォールバックしない API 29 の問題を修正しました。(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 に含まれる commit については、こちらをご覧ください。
API の変更
- 他の AuthPrompt タイプのものと同様の、CredentialAuthPrompt の一時停止コルーチンの拡張機能を追加しました。(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 に含まれる commit については、こちらをご覧ください。
API の変更
- 以前はビルダーを介して設定されていた一部の
AuthPromptフィールドを、startAuthentication(...)メソッドの引数にリファクタリングしました。(I18896、b/174098373) AuthPromptタイプの API レベルの最小要件を追加しました(古いバージョンの Android ではサポートが限定されるか、提供されません)。(I18896)- ビルダーを介して設定されるすべての
AuthPromptフィールド用のゲッター メソッドを追加しました。(I18896) AuthPromptAPI を介した生体認証用に、一時停止コルーチンの Kotlin 拡張機能を追加しました。これらの関数は、成功時に直接AuthenticationResultを返すか、エラーまたは失敗(認証情報の拒否)時に例外をスローします。(Iffc9e)
バグの修正
- Android 10(API レベル 29)を搭載した指紋認証センサー内蔵デバイスに対して、
BiometricManager.canAuthenticate(int)が誤ったステータス コードを返すことがある問題を修正しました。(I72420、b/176921662) - Android 10(API レベル 29)以前の SDK バージョンを搭載し、生体認証ハードウェアがなく、PIN、パターン、パスワードが登録されてないデバイスに対して、
BiometricManager.canAuthenticate(int)が誤ったステータス コードを返す問題を修正しました。(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 に含まれる commit については、こちらをご覧ください。
新機能
androidx.biometric:biometricの上に Kotlin 固有の API と拡張機能を追加するandroidx.biometric:biometric-ktxモジュールを導入しました。
API の変更
BiometricPromptを構築して認証を行うための新しいAuthPromptAPI を追加しました。これらの API では、初期ライフサイクル コールバック(onCreateなど)でBiometricPromptを構築する必要はありません。(I19022)- 新しい
AuthPromptAPI 用の Kotlin 拡張機能をFragmentとFragmentActivityに追加しました。(Iaf98c)
バージョン 1.1.0
バージョン 1.1.0
2021 年 1 月 27 日
androidx.biometric:biometric:1.1.0 がリリースされました。バージョン 1.1.0 に含まれる commit については、こちらをご覧ください。
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 に含まれる commit については、こちらをご覧ください。
バグの修正
- 一部のデバイスで、特定のアクション(認証、キャンセルなど)が
NullPointerExceptionをスローすることがある問題を修正しました。(b/151316421) - Android 10 でクラス 3 の生体認証のチェックに
BiometricManager#canAuthenticate(int)を使用すると、一部の Pixel デバイスで誤ったステータスがレポートされる問題を修正しました。(b/170406186)
バージョン 1.1.0-beta01
2020 年 10 月 1 日
androidx.biometric:biometric:1.1.0-beta01 がリリースされました。バージョン 1.1.0-beta01 に含まれる commit については、こちらをご覧ください。
新機能
- Android 8.1 以前のシステムでダイアログ アニメーションを静的アセットに置き換えることで、ライブラリの APK サイズのフットプリントを大幅に削減しました(場合によっては 100 KB 以上圧縮します)。(I4844e)
BiometricPromptでは、生体認証がロックアウトされた場合、サポートされているすべての Android バージョンにおいて、デバイス認証情報認証(使用可能な場合)に自動的にフォールバックされるようになりました。(b/149579143)
バグの修正
BiometricPromptが指紋認証センサーのない一部の Android 9 デバイスでクラッシュする問題を修正しました。(b/151443237)FingerprintDialogFragmentの潜在的なNullPointerExceptionを修正しました(b/167951429)BiometricManagerのリフレクション メソッド呼び出しに誤ったCryptoObject型が使用されていた問題を修正しました。(b/165824669)- 一部の Android 10 デバイスで、終了後すぐに
BiometricPromptを再度表示すると、新しいプロンプトが自動的に終了してしまう問題を修正しました。(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 に含まれる commit については、こちらをご覧ください。
新機能
BiometricManager#canAuthenticate()が、ユーザーが認証できる可能性があることを示すBIOMETRIC_STATUS_UNKNOWN、または特定の認証システムの組み合わせがデバイスでサポートされていないことを示すBIOMETRIC_ERROR_UNSUPPORTEDを返すことができるようになりました。- Android 11(API レベル 30)以降でのみ、関連付けられた
CryptoObjectを使用してBiometricPrompt#authenticate()をデバイス認証情報認証に使用できるようになりました。
API の変更
BiometricPromptのインスタンスを構築する際の明示的なExecutorの指定をオプションにしました。(I6bb8a)- Android 11 の
BiometricManager#canAuthenticate(int)メソッドを追加しました。(Ia3f1c) - Android 11 の
BiometricManager.Authenticators定数をサポートするようにBiometricPromptを更新しました。(I39bd8) - Android 11 の
BiometricPrompt.AuthenticationResult#getAuthenticationType()メソッドを追加しました。(Icfad5) - Android 11 のエラーコード
BiometricPrompt.ERROR_SECURITY_UPDATE_REQUIREDを追加しました。(I6610b) BiometricPrompt.CryptoObjectを更新して、IdentityCredentialを Android 11(API レベル 30)以降でのみサポートするようにしました。(I1d9f6)
バグの修正
BiometricFragmentとBiometricViewModelで LeakCanary が報告していたメモリリークを修正しました。(b/144919472)BiometricViewModelがバックグラウンド スレッドからMutableLiveData#setValue()を呼び出さないようにしました。(b/159983244)- 一部の API レベルで、
BiometricPromptが一時的なロックアウトを正しく処理しない問題を修正しました。(9acfce9) - 一部の API レベルで、画面ロックの認証情報で保護されていないデバイスに対して
BiometricPromptが誤ったエラーコードを返す問題を修正しました。(b/148626482) - 一部の API レベルで、キーガードを実装していないデバイスに対して
BiometricManagerとBiometricPromptが誤ったエラーコードを返す問題を修正しました。(891c6e0)
バージョン 1.1.0-alpha01
2020 年 6 月 24 日
androidx.biometric:biometric:1.1.0-alpha01 がリリースされました。バージョン 1.1.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
- 内部ライブラリ実装をリファクタリングし、メモリリークなどの意図しない動作が発生しないように対処しました。
- 内部フラグメントが、クライアント アプリのアクティビティ ライフサイクルに関連付けられた
ViewModelを使用して、データを共有、保持できるようになりました。 - Android 10(API レベル 29)より前のデバイス認証情報認証が、クライアント アプリ内で透明アクティビティを起動しないようになりました。
- 内部フラグメントが、クライアント アプリのアクティビティ ライフサイクルに関連付けられた
バグの修正
FingerprintManagerCompatの使用に関連する非推奨警告を解決しました。(b/142967618)- 古いバージョンの Android 上でクラス検証に関する問題が発生しないように、SDK 制限付きプラットフォーム メソッドの呼び出し方法を変更しました。(94beb4b)
- 公開 API の一部ではない Gradle 依存関係の場合、ライブラリがエクスポートしないようにしました。(f289d9e)
バージョン 1.0.1
バージョン 1.0.1
2019 年 12 月 18 日
androidx.biometric:biometric:1.0.1 がリリースされました。バージョン 1.0.1 に含まれる commit については、こちらをご覧ください。
バグの修正
- 暗号ベースの認証に関する既存のフィンガープリント フォールバック回避策を、既知の影響を受けるベンダーに拡張し、同時に 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 に含まれる commit については、こちらをご覧ください。
1.0.0 の主な機能
- Android 10 に実装された
BiometricPromptAPI とBiometricManagerAPI の互換バージョンは、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 に含まれる commit については、こちらをご覧ください。
バグの修正
- API バージョン 28 と 29 で暗号ベースの認証が呼び出されたときに弱い生体認証を誤って検出することが報告されている一部のデバイス用に回避策を追加しました(b/142150327)
バージョン 1.0.0-rc01
2019 年 10 月 9 日
androidx.biometric:biometric:1.0.0-rc01 がリリースされました。バージョン 1.0.0-rc01 に含まれる commit については、こちらをご覧ください。
バグの修正
- 画面の回転中に閉じると
FingerprintDialogFragmentによりクラッシュするおそれのある問題を修正しました(b/141356362) - Framework API から null の
AuthenticationResultを受け取るとクラッシュするおそれのある問題を修正しました(b/138862251) onSaveInstanceState()の後にBiometricPromptを閉じるとクラッシュする問題を修正しました(b/138825362、b/140447194)
バージョン 1.0.0-beta02
2019 年 9 月 18 日
androidx.biometric:biometric:1.0.0-beta02 がリリースされました。バージョン 1.0.0-beta02 に含まれる commit については、こちらをご覧ください。
バグの修正
- バージョン
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 に含まれる commit については、こちらをご覧ください。
新機能
BiometricPrompt に 2 つ目のコンストラクタを導入しました。これにより、(FragmentActivity を必要とする既存のコンストラクタとは対照的に)BiometricPrompt をフラグメントでホストできるようになりました。
また、AndroidX の生体認証ライブラリに Android 10 から次の機能が追加されました。
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 で null エラー値が返されたときの 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 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。
バグの修正
- Biometric フラグメントがすべての場合にクリーンアップされない問題を修正(b/121117380)
BiometricPromptがBiometricPrompt.AuthenticationCallbackのインスタンスを 1 つしか許可しない問題を修正しました(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 以上に合わせて、ロックアウト エラーがすぐに返されるようになりました