- 积分
 - 35
 
 
贡献280 
飞刀61 FD
注册时间2019-1-24
在线时间5 小时
 
 
 
  
   
 
 | 
 
 
 楼主 |
发表于 2019-3-26 11:16:17
|
显示全部楼层
 
 
 
补充一点,关于第二个问题。具体到代码是android_6.0.1_2.1.0\frameworks\base\services\core\java\com\android\server\fingerprint\FingerprintService.java: 
 
 public IFingerprintDaemon getFingerprintDaemon() { 
        if (mDaemon == null) { 
            mDaemon = IFingerprintDaemon.Stub.asInte**ce(ServiceManager.getService(FINGERPRINTD)); 
            if (mDaemon != null) { 
                try { 
                    mDaemon.asBinder().linkToDeath(this, 0); 
                    mDaemon.init(mDaemonCallback); 
                    mHalDeviceId = mDaemon.openHal(); 
                    if (mHalDeviceId != 0) { 
                        updateActiveGroup(ActivityManager.getCurrentUser()); 
                    } else { 
                        Slog.w(TAG, "Failed to open Fingerprint HAL!"); 
                        mDaemon = null; 
                    } 
                } catch (RemoteException e) { 
                    Slog.e(TAG, "Failed to open fingeprintd HAL", e); 
                    mDaemon = null; // try again later! 
                } 
            } else { 
                Slog.w(TAG, "fingerprint service not available"); 
            } 
        } 
        return mDaemon; 
    } 
 |   
 
 
 
 |