指纹识别的深入理解

本文深入探讨指纹识别的内部运作,重点关注AuthenticationClient对象的生命周期。在每次指纹识别过程中,client对象保持独立。当识别失败,client对象依然存在,允许继续尝试。若识别成功或连续5次失败,client会在特定条件下被移除,进入lockout模式,阻止进一步的识别操作。通过handleAuthenticated和handleFailedAttempt方法,client被停止并清除,确保系统资源的有效管理。
摘要由CSDN通过智能技术生成

地点:FingerprintService.java/AuthenticationClient.java
人物:AuthenticationClient和removeClient()(=null)

 AuthenticationClient client = new AuthenticationClient(getContext(), mHalDeviceId, token, receiver, mCurrentUserId, groupId, opId, restricted, opPackageName, bundle, dialogReceiver, mStatusBarService) {
                @Override //p
                public void onStart() {
                    try {
                        mActivityManager.registerTaskStackListener(mTaskStackListener);
                    } catch (RemoteException e) {
                        Slog.e(TAG, "Could not register task stack listener", e);
                    }
                }
                @Override //p
                public void onStop() {
                    try {
                        mActivityManager.unregisterTaskStackListener(mTaskStackListener);
                    } catch (RemoteException e) {
                        Slog.e(TAG, "Could not unregister task stack listener", e);
                    }
                }
    
                @Override
                public int handleFailedAttempt() {
                    final int currentUser = ActivityManager.getCurrentUser();
                    mFailedAttempts.put(currentUser, mFailedAttempts.get(currentUser, 0) + 1);
                    mTimedLockoutCleared.put(ActivityManager.getCurrentUser(), false);
   

                 final int lockoutMode = getLockoutMode();
                    if (lockoutMode == AuthenticationClient.LOCKOUT_PERMANENT) {
                        mPerformanceStats.permanentLockout++;
                } else if (lockoutMode == AuthenticationClient.LOCKOUT_TIMED) {
                    mPerformanceStats.lockout++;
                }

                // Failing multiple times will continue to push out the lockout time
                if (lockoutMode != AuthenticationClient.LOCKOUT_NONE) {
                    scheduleLockoutResetForUser(currentUser);
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值