序文
指紋認識は非常に単純なAndroidの最後にパッケージされた、当然のことながら、機能を与えるあなたが唯一のコールバック指紋認識成否を得ることができれば非常に少ないにもあります。実際には、あなたは基本的にお会い非常に複雑な機能を、必要としない実際のビジネスは、現在のデバイスは、パスワードロック機能の所有者であることを確認してください。
また、あなたはこのブログの指紋認識に知っておく必要があります唯一のAndroid 6.0に適用されます - アンドロイド9.0。
簡単なデモ
技量
< 用途許可アンドロイド:名= "android.permission.USE_FINGERPRINT" />
コード
パブリック クラス MainActivityは延び AppCompatActivity 実装View.OnClickListener { プライベート 静的 最終的な文字列タグ= MainActivityを。クラス.getSimpleName(); プライベートFingerprintManagerCompat mFingerprintManagerCompat。 プライベートCancellationSignal mCancellationSignal。 民間のTextView mTextView。 プライベートボタンmAuthenticateBtn。 プライベートボタンmCandleBtn。 @Overrideは、 保護された ボイドのonCreate(バンドルsavedInstanceState){ スーパー .onCreate(savedInstanceState)。 setContentView(R.layout.activity_main)。 initView(); mFingerprintManagerCompat = FingerprintManagerCompat.from(本)// 初始化指纹管理区 } プライベート ボイドinitView(){ mAuthenticateBtn = (ボタン)findViewById(R.id.authenticate_btn)。 mCandleBtn = (ボタン)findViewById(R.id.candle_btn)。 mAuthenticateBtn.setOnClickListener(この); mCandleBtn.setOnClickListener(この); } @Override 公共 ボイドのonClick(ビューV){ スイッチ(v.getId()){ ケースR.id.authenticate_btn: IF (mFingerprintManagerCompat.isHardwareDetected()){ Log.e(TAG、 "指紋デバイスが検出された" ); IF (mFingerprintManagerCompat.hasEnrolledFingerprints()){ fingerprintAuthenticate( ); Log.e(TAG、 "指紋" ); リターン; } } Toast.makeText(これは、 "このデバイスは指紋ではない" 、Toast.LENGTH_SHORT).SHOW(); BREAK 。 ケースR.id.candle_btn: IF(!mCancellationSignal = ヌル){ mCancellationSignal.cancel(); // キャンセル指紋認証要求 } BREAK ; } } / ** *指紋認証要求 * / プライベート 無効fingerprintAuthenticate(){ // TODOここでは、指紋認証プロンプト]ダイアログボックスを追加することができます mCancellationSignal = 新新)CancellationSignalを(; //は、指紋認証動作クラスキャンセル mCancellationSignal.setOnCancelListenerを(新しい新しい CancellationSignal.OnCancelListenerを(){ @Override 公共 ボイド onCancel(){ // 指紋認証コールバックをキャンセル } )}; / * このコード行は、5つのパラメータの合計の下、本明細書に記載の認証要求操作で ない場合は、コールに関連付けられたオブジェクトと1 、ヌルでした。心配する必要はありません 2.オプションのロゴを、ゼロでなければなりません。心配する必要はない 3.操作のクラスは、認証対象をキャンセルするために使用することができる 4.コールバックインターフェース 5.インターフェースコールバックハンドラ、デフォルトのメインスレッドのスレッド * / mFingerprintManagerCompat.authenticate(NULL、0、mCancellationSignal、新しい新しいFingerprintManagerCompat.AuthenticationCallback(){ @Overrideを 公共 のボイド onAuthenticationError(int型ERRMSGID、ErrStringたCharSequence){ スーパー);.onAuthenticationError(ERRMSGID、ErrString); // 呼び出しが回復不能なエラーが発生し、操作は完了です。*このオブジェクトの上にさらにプルバックを進まない // ここにコールバックされます認定キャンセルし、別のイニシアチブ後 (タグ「onAuthenticationError:認証エラー」をLog.eを); } @Override 公共 無効 onAuthenticationHelp(int型helpMsgId、のCharSequence helpstring){ スーパー.onAuthenticationHelp(helpMsgId、helpstring); // 回復可能なエラーが認証中に遭遇したときに呼び出されます。ユーザーに問題に関するガイダンスを提供するために、ヘルプ文字列を提供する、など*として「センサーが汚れている、それをきれいに」 Log.e(TAG、「onAuthenticationHelp:認定ヘルプ」 } @Override 公共 ボイドがonAuthenticationSucceeded(FingerprintManagerCompat.AuthenticationResult結果){ スーパー.onAuthenticationSucceeded(結果); //が成功した指紋を呼び出し Log.e(TAG、 "onAuthenticationSucceeded:認証成功" ); } @Override 公共 ボイドonAuthenticationFailed(){ スーパー.onAuthenticationFailed(); // 有効ですが、指紋が認識されないコール Log.e(TAG、 "onAuthenticationFailed:認証に失敗しました" ); } }、ヌル); } }