return; FingerprintManagerCompat managerCompat = FingerprintManagerCompat.from(context); if (!managerCompat.isHardwareDetected()) { //判断设备是否支持 if (listener != null) listener.onSupportFailed(); if (!managerCompat.hasEnrolledFingerprints()) { //判断设备是否已经注册过指纹 if (listener != null) managerCompat.authenticate(null, 0, cancellationSignal, new FingerprintManagerCompat.AuthenticationCallback() {
public boolean isFingerprintAuthAvailable() { // The line below prevents the false positive inspection from Android Studio // noinspection ResourceType return mFingerprintManager.isHardwareDetected() && mFingerprintManager.hasEnrolledFingerprints(); }
/** * Check if the device have supported hardware fir the finger print scanner. * * @param context instance of the caller. * @return true if device have the hardware. */ public static boolean isSupportedHardware(Context context) { FingerprintManagerCompat fingerprintManager = FingerprintManagerCompat.from(context); return fingerprintManager.isHardwareDetected(); } }
/** * Check if the finger print hardware is available. * * @param context instance of the caller. * @return true if finger print authentication is supported. */ private boolean checkFingerPrintAvailability(@NonNull Context context) { // Check if we're running on Android 6.0 (M) or higher if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //Fingerprint API only available on from Android 6.0 (M) FingerprintManagerCompat fingerprintManager = FingerprintManagerCompat.from(context); if (!fingerprintManager.isHardwareDetected()) { // Device doesn't support fingerprint authentication mCallback.onNoFingerPrintHardwareFound(); return false; } else if (!fingerprintManager.hasEnrolledFingerprints()) { // User hasn't enrolled any fingerprints to authenticate with mCallback.onNoFingerPrintRegistered(); return false; } return true; } else { mCallback.onBelowMarshmallow(); return false; } }
private boolean isFingerPrintReady(Context context) { return FingerprintManagerCompat.from(context).hasEnrolledFingerprints(); }
@Provides public FingerprintManagerCompat providesFingerprintManager(Context context) { return FingerprintManagerCompat.from(context); }
public void startListening(FingerprintManagerCompat.CryptoObject cryptoObject) { if (!isFingerprintAuthAvailable()) { return; } mCancellationSignal = new CancellationSignal(); mSelfCancelled = false; // The line below prevents the false positive inspection from Android Studio // noinspection ResourceType mFingerprintManager.authenticate( cryptoObject, 0, mCancellationSignal, this, null); mIcon.setImageResource(R.drawable.ic_fp_40px_pf); }
public FingerprintManagerCompat.CryptoObject buildCryptoObject() throws Exception { Cipher cipher = createCipher(true); return new FingerprintManagerCompat.CryptoObject(cipher); }
@Override public void onAuthenticationError(int errMsgId, CharSequence errString) { super.onAuthenticationError(errMsgId, errString); if (handler != null) { handler.obtainMessage(MainActivity.MSG_AUTH_ERROR, errMsgId, 0).sendToTarget(); } }
@Override public void onAuthenticationSucceeded(FingerprintManagerCompat.AuthenticationResult result) { super.onAuthenticationSucceeded(result); if (handler != null) { handler.obtainMessage(MainActivity.MSG_AUTH_SUCCESS).sendToTarget(); } }
@Override public void onAuthenticationHelp(int helpMsgId, CharSequence helpString) { super.onAuthenticationHelp(helpMsgId, helpString); if (handler != null) { handler.obtainMessage(MainActivity.MSG_AUTH_HELP, helpMsgId, 0).sendToTarget(); } }
@Override public void onAuthenticationFailed() { super.onAuthenticationFailed(); if (handler != null) { handler.obtainMessage(MainActivity.MSG_AUTH_FAILED).sendToTarget(); } } }
private boolean isFingerprintApiAvailable(Context context) { return FingerprintManagerCompat.from(context).isHardwareDetected(); }
public boolean isFingerprintAuthAvailable() { return mFingerprintManager.isHardwareDetected() && mFingerprintManager.hasEnrolledFingerprints(); }
private boolean isFingerprintsExists(Context context) { return FingerprintManagerCompat.from(context).hasEnrolledFingerprints(); }
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { getDialog().setTitle(getString(R.string.sign_in_pf)); View v = inflater.inflate(R.layout.view_pf_fingerprint_dialog_container, container, false); mCancelButton = v.findViewById(R.id.cancel_button); mCancelButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dismiss(); } }); mFingerprintContent = v.findViewById(R.id.fingerprint_container); FingerprintManagerCompat manager = FingerprintManagerCompat.from(getContext()); mFingerprintCallback = new PFFingerprintUIHelper(manager, (ImageView) v.findViewById(R.id.fingerprint_icon), (TextView) v.findViewById(R.id.fingerprint_status), mAuthListener); updateStage(); return v; }
public void startListening(FingerprintManagerCompat.CryptoObject cryptoObject) { if (!isFingerprintAuthAvailable()) { return; } mCancellationSignal = new CancellationSignal(); mSelfCancelled = false; mFingerprintManager .authenticate(cryptoObject, 0 /* flags */, mCancellationSignal, this, null); mIcon.setImageResource(R.drawable.ic_fp_40px); }
@Override public void onClick(View v) { findViewById(R.id.confirmation_message).setVisibility(View.GONE); findViewById(R.id.encrypted_message).setVisibility(View.GONE); // 署名クラスが初期化できたら認証ダイアログを出します。 if (initSignature()) { mFragment.setCryptoObject(new FingerprintManagerCompat.CryptoObject(mSignature)); boolean useFingerprintPreference = mSharedPreferences.getBoolean(getString(R.string.use_fingerprint_to_authenticate_key), true); if (useFingerprintPreference) { mFragment.setStage(FingerprintAuthenticationDialogFragment.Stage.FINGERPRINT); } else { mFragment.setStage(FingerprintAuthenticationDialogFragment.Stage.PASSWORD); } mFragment.show(getFragmentManager(), DIALOG_FRAGMENT_TAG); } else { // 鍵のペアを生成後、ロック画面が無効になった場合、もしくは鍵のペアを生成後、新たに指紋が登録された場合 mFragment.setStage(FingerprintAuthenticationDialogFragment.Stage.NEW_FINGERPRINT_ENROLLED); mFragment.show(getFragmentManager(), DIALOG_FRAGMENT_TAG); } } });
private boolean isFingerPrintAvailable(Context context) { return FingerprintManagerCompat.from(context).isHardwareDetected(); }
@Override public void onClick(View v) { // reset result info. mResultInfo.setText(R.string.fingerprint_hint); mResultInfo.setTextColor(getColor(R.color.hint_color)); // start fingerprint auth here. try { CryptoObjectHelper cryptoObjectHelper = new CryptoObjectHelper(); if (cancellationSignal == null) { cancellationSignal = new CancellationSignal(); } fingerprintManager.authenticate(cryptoObjectHelper.buildCryptoObject(), 0, cancellationSignal, myAuthCallback, null); // set button state. mStartBtn.setEnabled(false); mCancelBtn.setEnabled(true); } catch (Exception e) { e.printStackTrace(); Toast.makeText(MainActivity.this, "Fingerprint init failed! Try again!", Toast.LENGTH_SHORT).show(); } } });