> 文章列表 > 使用google的人脸解锁,如何解锁后直接进入应用界面,而不需要再进行滑动解锁?

使用google的人脸解锁,如何解锁后直接进入应用界面,而不需要再进行滑动解锁?

使用google的人脸解锁,如何解锁后直接进入应用界面,而不需要再进行滑动解锁?

google 人脸解锁原生设计,解锁完成后还需要滑动界面解锁,可通过人脸解锁成功后回调的接口,直接调用dismissKeyguard将滑动锁解除。

由于修改的是公共接口,所以可能会影响其他第三方apk的表现,请自行评估确认是否修改,具体可参考如下:

/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java
@@ -24,6 +24,8 @@ import com.android.keyguard.KeyguardUpdateMonitorCallback;
 import com.android.systemui.settings.CurrentUserTracker;

 import java.util.ArrayList;
+import android.os.RemoteException;
+import android.view.WindowManagerGlobal;

 public class KeyguardMonitorImpl extends KeyguardUpdateMonitorCallback
         implements KeyguardMonitor {
@@ -110,9 +112,17 @@ public class KeyguardMonitorImpl extends KeyguardUpdateMonitorCallback
     @Override
     public void onTrustChanged(int userId) {
         updateCanSkipBouncerState();
+        unlock();
         notifyKeyguardChanged();
     }

+     public void unlock() {
+       try {
+             WindowManagerGlobal.getWindowManagerService().dismissKeyguard(null, null);
+         } catch (RemoteException e) {
+        }
+    }
+
     public boolean isDeviceInteractive() {
         return mKeyguardUpdateMonitor.isDeviceInteractive();
     }