FingerprintEnrollFindSensor 界面切换

地点:FingerprintEnrollFindSensor.java //Android P
事件:通过指纹切到录入界面 FingerprintEnrollEnrolling.java
Android P
对比于Android N 这里不再支持NEXT按钮切到右边的界面。
那么指纹是如何切到右边的录入界面的呢?

进入左边界面在我们设置过强认证解锁的方式之后,就会获得非空的token(byte[]),直接调用 startLookingForFingerprint()
如果没有设置过强认证方式,则launch对象的设置界面要求设置,设置完成后,回到左边界面,会调用 startLookingForFingerprint()。

starLookingForFingerprint()的调用将让指纹开始工作。
    private void startLookingForFingerprint() {
        mSidecar = (FingerprintEnrollSidecar) getFragmentManager().findFragmentByTag(
                FingerprintEnrollEnrolling.TAG_SIDECAR);
        if (mSidecar == null) {
            mSidecar = new FingerprintEnrollSidecar();
            getFragmentManager().beginTransaction()
                    .add(mSidecar, FingerprintEnrollEnrolling.TAG_SIDECAR).commit();
        }
//经过上面的逻辑,FingerprintEnrollSidecar这个fragment生命周期就开始了,接着导致enroll
//(token,....)被调用。指纹开始工作
        mSidecar.setListener(new Listener() {//这是匿名内部类的方式实现接口方法,其实还有其他实现方式如在外部类中实现Listener这个接口
            @Override
            public void onEnrollmentProgressChange(int steps, int remaining) {
                mNextClicked = true;
                proceedToEnrolling(true /* cancelEnrollment */);
            }

            @Override
            public void onEnrollmentHelp(CharSequence helpString) {
            }

            @Override
            public void onEnrollmentError(int errMsgId, CharSequence errString) {
              //fix: use the same fingerprint to go to enrolling page!
                if (errString!=null)
                    Log.d("call back","onEnrollmentError proceedToEnrolling"+" errMsgId: "+errMsgId+" errString "+ errString.toString());
                if (errString==null||errMsgId==FingerprintManager.FINGERPRINT_ERROR_UNABLE_TO_PROCESS)
                    proceedToEnrolling(false /* cancelEnrollment */);
                else if (mNextClicked && errMsgId == FingerprintManager.FINGERPRINT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值