生体認証
最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
---|---|---|---|---|
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-alpha02
と androidx.biometric:biometric-ktx:1.4.0-alpha02
がリリースされました。バージョン 1.4.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
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-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) AuthPrompt
API を介した生体認証用に、一時停止コルーチンの 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
を構築して認証を行うための新しいAuthPrompt
API を追加しました。これらの API では、初期ライフサイクル コールバック(onCreate
など)でBiometricPrompt
を構築する必要はありません。(I19022)- 新しい
AuthPrompt
API 用の 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 に実装された
BiometricPrompt
API とBiometricManager
API の互換バージョンは、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#canAuthenticate
BiometricPrompt.PromptInfo#setConfirmationRequired
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 については、こちらをご覧ください。
バグの修正
- 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 以上に合わせて、ロックアウト エラーがすぐに返されるようになりました