Android使用系统指纹对应用进行解锁加密的方法

版权声明:本文为DmrfCoder原创作品,如有转载请注明出处 https://blog.csdn.net/qq_36982160/article/details/82421840

之前有给应用加上指纹解锁的需求,在这里记录一下相关方法:

说明

Android的指纹支持是在6.0以后才引入的,所以要求api必须大于23.

流程

判断当前手机是否支持指纹识别

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            Log.i("info", "手机支持指纹识别");
        } else {
            Log.i("info", "手机不支持指纹识别");
        }

调用

首先声明并实例化指纹管理类:

private FingerprintManagerCompat fingerprintManagerCompat;
    //用于取消指纹识别器监听的对象
private CancellationSignal cancellationSignal;

fingerprintManagerCompat = FingerprintManagerCompat.from(getActivity());
cancellationSignal = new CancellationSignal();


 fingerprintManagerCompat.authenticate(null, 0, cancellationSignal, new FingerDiscentListener(), null);

编写FingerDiscentListener继承自 FingerprintManagerCompat.AuthenticationCallback:

private class FingerDiscentListener extends FingerprintManagerCompat.AuthenticationCallback {
        @Override
        public void onAuthenticationError(int errMsgId, CharSequence errString) {
            super.onAuthenticationError(errMsgId, errString);
            if (errMsgId == 5) {
                //取消识别

            } else if (errMsgId == 7) {
                //tvHint.setText("操作过于频繁,请稍后重试");
                if (cancellationSignal != null) {
                    cancellationSignal.cancel();
                    cancellationSignal = null;
                }
            }
        }

        @Override
        public void onAuthenticationSucceeded(FingerprintManagerCompat.AuthenticationResult result) {
            super.onAuthenticationSucceeded(result);
            //指纹识别成功
            cancellationSignal.cancel();//取消指纹的监听

        }

        @Override
        public void onAuthenticationFailed() {
            super.onAuthenticationFailed();
            //指纹识别失败

        }

        @Override
        public void onAuthenticationHelp(int helpMsgId, CharSequence helpString) {
            super.onAuthenticationHelp(helpMsgId, helpString);

        }
    }

结合上面的代码,加上你自己的逻辑调用,基本上就可以满足日常使用了。

猜你喜欢

转载自blog.csdn.net/qq_36982160/article/details/82421840
今日推荐