Android指纹

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格满满啊~~
其实如果能识别某个特定的指纹就完美了,暂时不知道目前有没有这样的技术,继续学习吧

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值