Biometric

生体認証システムまたはデバイス認証情報で認証を行い、暗号オペレーションを実行します。
最新の更新 安定版リリース リリース候補版 ベータ版リリース アルファ版リリース
2022 年 9 月 21 日 1.1.0 - - 1.2.0-alpha05

依存関係の宣言

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.2.0-alpha05"
}

Kotlin

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

    // Kotlin
    implementation("androidx.biometric:biometric:1.2.0-alpha05")
}

依存関係について詳しくは、ビルド依存関係の追加をご覧ください。

フィードバック

お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

バージョン 1.2.0

バージョン 1.2.0-alpha05

2022 年 9 月 21 日

androidx.biometric:biometric:1.2.0-alpha05androidx.biometric:biometric-ktx:1.2.0-alpha05 がリリースされました。バージョン 1.2.0-alpha05 に含まれる commit については、こちらをご覧ください

API の変更

  • Android 13 で android.security.identity.PresentationSessionCryptoObject サポートを追加しました。(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-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-alpha03androidx.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-alpha02androidx.biometric:biometric-ktx:1.2.0-alpha02 がリリースされました。バージョン 1.2.0-alpha02 に含まれる commit については、こちらをご覧ください

API の変更

  • 以前はビルダーを介して設定されていた一部の AuthPrompt フィールドを、startAuthentication(...) メソッドの引数にリファクタリングしました。(I18896b/174098373
  • AuthPrompt タイプの API レベルの最小要件を追加しました(古いバージョンの Android ではサポートが限定されるか、提供されません)。(I18896
  • ビルダーを介して設定されるすべての AuthPrompt フィールド用のゲッター メソッドを追加しました。(I18896
  • AuthPrompt API を介した生体認証用に、一時停止コルーチンの Kotlin 拡張機能を追加しました。これらの関数は、成功時に直接 AuthenticationResult を返すか、エラーまたは失敗(認証情報の拒否)時に例外をスローします。(Iffc9e

バグの修正

  • Android 10(API レベル 29)を搭載した指紋認証センサー内蔵デバイスに対して、BiometricManager.canAuthenticate(int) が誤ったステータス コードを返すことがある問題を修正しました。(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-alpha01 がリリースされました。バージョン 1.2.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

  • androidx.biometric:biometric の上に Kotlin 固有の API と拡張機能を追加する androidx.biometric:biometric-ktx モジュールを導入しました。

API の変更

  • BiometricPrompt を構築して認証を行うための新しい AuthPrompt API を追加しました。これらの API では、初期ライフサイクル コールバック(onCreate など)で BiometricPrompt を構築する必要はありません。(I19022
  • 新しい AuthPrompt API 用の Kotlin 拡張機能を FragmentFragmentActivity に追加しました。(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/154868505b/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 の変更

バグの修正

  • BiometricFragmentBiometricViewModel で LeakCanary が報告していたメモリリークを修正しました。(b/144919472
  • BiometricViewModel がバックグラウンド スレッドから MutableLiveData#setValue() を呼び出さないようにしました。(b/159983244
  • 一部の API レベルで、BiometricPrompt が一時的なロックアウトを正しく処理しない問題を修正しました。(9acfce9
  • 一部の API レベルで、画面ロックの認証情報で保護されていないデバイスに対して BiometricPrompt が誤ったエラーコードを返す問題を修正しました。(b/148626482
  • 一部の API レベルで、キーガードを実装していないデバイスに対して BiometricManagerBiometricPrompt が誤ったエラーコードを返す問題を修正しました。(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/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 に含まれる commit については、こちらをご覧ください

1.0.0 の主な機能

  • Android 10 に実装された BiometricPrompt API と BiometricManager API の互換バージョンは、Android 6.0(API 23)まで遡って全機能がサポートされます
  • Fragment または FragmentActivityBiometricPrompt のライフサイクル管理が組み込まれました
  • 暗号ベースの認証中に、強度が弱い生体認証を誤って提供することが報告されているデバイスを特別に対処するようにしました

バージョン 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/138825362b/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
  • 指紋認証ハードウェアが検出されない場合、FingerprintHelperFragmentERROR_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 から次の機能が追加されました。

  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 で 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 については、こちらをご覧ください。

バグの修正

  • 生体認証フラグメントがすべての場合にクリーンアップされない問題を修正しました。(b/121117380
  • BiometricPromptBiometricPrompt.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 以上に合わせて、ロックアウト エラーがすぐに返されるようになりました