Android指纹

来源:互联网 发布:淘宝网安踏春秋长裤 编辑:程序博客网 时间:2024/04/30 06:33

Android M指纹验证的简单使用

最近项目不咋忙,想着找点事儿做,就给自己写个自己用的App,顺便练练手学习新技术。因为我的手机有指纹功能,那么登陆功能~~

话不多说,开工!

取得这两个manager

mFingerprintManager = (FingerprintManager) this.getSystemService(Context.FINGERPRINT_SERVICE);mKeyguardManager = (KeyguardManager) this.getSystemService(Context.KEYGUARD_SERVICE);

哦忘了 记得添加权限(以前老是忘记添加权限导致报错),这个权限不在那几个权限组里,所以我们只需要在清单文件声明就行了.

<uses-permission android:name="android.permission.USE_FINGERPRINT" />

现在开始用了,

/** * 第一个参数是个FingerprintManager.CryptoObject类型,只是做验证指纹的话没啥用,填null就行, * 第二个参数需要一个CancellationSignal,那就new一个 * 第三个需要一个int型的flag,填个0(填233也行~~!) * 第四个是指纹识别的一个回调,待会儿在说 * 第五个需要个handler,我也不需要~~~ **/ mFingerprintManager.authenticate(null, new CancellationSignal(), 0, mCallBack, null);

然后就是返回验证结果的回调方法:

FingerprintManager.AuthenticationCallback mCallBack = new FingerprintManager            .AuthenticationCallback() {        //这个方法是在超过次数后调用,超过错误次数之后需要等三十秒才能再次使用(我的手机是三十秒~~~),就像手机锁屏的那个图案密码        @Override        public void onAuthenticationError(int errorCode, CharSequence errString) {            showToast(errString);        }    //这个方法在识别错误时会给予提示帮助之类的,我只看到过"手指移动太快,请重试"        @Override        public void onAuthenticationHelp(int helpCode, CharSequence helpString) {            showToast(helpString);            Log.d(TAG, "onAuthenticationHelp: " + helpCode + "," + helpString);        }      //识别成功        @Override        public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) {//            Toast.makeText(mContext, "识别成功", Toast.LENGTH_SHORT).show();            startActivity(new Intent(mContext, MainActivity.class));            finish();        }    //每次识别失败都会调用这个方法(安全起见,而且错误五次还要等三十秒才能再次解锁,我可不想看着锁屏界面三十秒)        @Override        public void onAuthenticationFailed() {            checkErrorNum++;            if (checkErrorNum >= 3) {                //达到了错误次数,调用锁屏方法                showToast("已经错误3次,即将锁屏");                //延时2.5秒,不然我的Toast给谁看                new Handler().postDelayed(new Runnable() {                    @Override                    public void run() {                        lockScreen();                    }                }, 2500);            } else {                showToast("错误的指纹");            }        }    };

OK,这样就可以了,是不是很简单!要是来个弹出框,配合一张带指纹扫描的那种GIF图,简直B格满满啊~~
其实如果能识别某个特定的指纹就完美了,暂时不知道目前有没有这样的技术,继续学习吧

这代码也是前天写的,今天心血来潮写博客,百度看不到我参考的那篇文章了,那就谢谢各位前辈啦

原创粉丝点击