zoukankan      html  css  js  c++  java
  • Android Q 指纹解锁流程

    Android Q 指纹解锁流程

    // Authentation Finger Schedule: (close Screen, Authentation with finger(Success))
            // PhoneWindowManager
            mKeyguardDelegate.onStartedGoingToSleep(why);
            // KeyguardServiceDelegate
            mKeyguardService.onStartedGoingToSleep(why);
            // KeyguardServiceWrapper
            mService.onStartedGoingToSleep(reason);
            // KeyguardService
            mKeyguardViewMediator.onStartedGoingToSleep(reason);
            // KeyguardViewMediator
            KeyguardUpdateMonitor.getInstance(mContext).dispatchStartedGoingToSleep(why);
            // KeyguardUpdateMonitor#
            handleStartedGoingToSleep(msg.arg1);
            updateBiometricListeningState();
            updateFingerprintListeningState()
            startListeningForFingerprint()
            mFpm.authenticate(null, mFingerprintCancelSignal, 0, mFingerprintAuthenticationCallback,null, userId);
                // FingerprintManager
                -> authenticate(
                    -> (IFingerprintService)mService.authenticate(mToken, sessionId, userId, mServiceReceiver, flags,mContext.getOpPackageName());
                    -> // FingerprintService# private final class FingerprintServiceWrapper extends IFingerprintService.Stub {
                        -> public void authenticate(final IBinder token, final long opId, final int groupId,
                              -> authenticateInternal(
                                    -> startAuthentication(
                                           startClient(client, true /* initiatedByClient */);
                                               // AuthenticationClient#start()
                                               final int result = getDaemonWrapper().authenticate(mOpId, getGroupId());
                                                   BiometricServiceBase#protected interface DaemonWrapper { -> int authenticate(long operationId, int groupId) throws RemoteException;
                                                       IBiometricsFingerprint daemon = getFingerprintDaemon();
                                                           IBiometricsFingerprint daemon = getFingerprintDaemon();
                                                               mHalDeviceId = mDaemon.setNotify(mDaemonCallback);
                                                                   public void onAuthenticated(final long deviceId, final int fingerId, final int groupId,
                                                                       FingerprintService.super.handleAuthenticated(fp, token);
                                                                           client.onAuthenticated(identifier, authenticated, token)
                                                                           // AuthenticationClient#
                                                                               (BiometricServiceBase.ServiceListener)listener.onAuthenticationSucceeded(getHalDeviceId(), identifier, getTargetUserId());
                                                                               Or: listener.onAuthenticationFailed(getHalDeviceId());
                                                                                   // FingerprintService#
                                                                                   mFingerprintServiceReceiver.onAuthenticationSucceeded(deviceId, (Fingerprint) biometric, userId);
                                                                                       //FingerprintManager#
                                                                                       mHandler.obtainMessage(MSG_AUTHENTICATION_SUCCEEDED, userId, 0, fp).sendToTarget();
                                                                                           sendAuthenticatedSucceeded((Fingerprint) msg.obj, msg.arg1 /* userId */);
                                                                                               mAuthenticationCallback.onAuthenticationSucceeded(result);
                                                                                                   // KeyguardUpdateMonitor
                                                                                                   handleFingerprintAuthenticated(result.getUserId());
    
    
  • 相关阅读:
    Oracle11g新建用户及用户表空间
    PLSQL连接oracle12c
    Zabbix微信报警脚本及写触发记录
    使用document.select(Jquery Css selector) selector:看jsoup文档来敲案例学习 selector选择器
    仙女打卡day1
    XML的解析(读取),附带源码与运行效果图 (day01)
    [Luogu] P7077 函数调用
    [Luogu] P5815 [CQOI2010]扑克牌
    [Luogu] CF364D Ghd
    [Luogu] P4823 [TJOI2013]拯救小矮人
  • 原文地址:https://www.cnblogs.com/AleiCui/p/12810821.html
Copyright © 2011-2022 走看看