我正在实现一个自定义的“滑动解锁”屏幕。
如果在设置中“屏幕锁定”为“滑动”,我的应用程序可以正常工作。 在我的自定义“滑动解锁”屏幕中,用户滑动以解锁,通过在我的活动中添加下面的代码来直接解锁手机并进入主屏幕:
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
当在设置中“屏幕锁定”为“PIN”时,问题就出现了,上述代码不起作用。我期望的是它将绕过默认的“滑动解锁”屏幕并进入“PIN输入”屏幕,这样用户就不必滑动两次才能输入他们的PIN码。
更新:
看起来我们无法避免默认的“滑动解锁”屏幕,所以我尝试另一种方法,即使用指纹。
@Override public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) { mCallback.onAuthenticated(); }
如果在设置中“屏幕锁定”为“滑动”,我的应用程序可以正常工作。 在我的自定义“滑动解锁”屏幕中,用户滑动以解锁,通过在我的活动中添加下面的代码来直接解锁手机并进入主屏幕:
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
当在设置中“屏幕锁定”为“PIN”时,问题就出现了,上述代码不起作用。我期望的是它将绕过默认的“滑动解锁”屏幕并进入“PIN输入”屏幕,这样用户就不必滑动两次才能输入他们的PIN码。
更新:
看起来我们无法避免默认的“滑动解锁”屏幕,所以我尝试另一种方法,即使用指纹。
@Override public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) { mCallback.onAuthenticated(); }
目前,我需要两次触摸传感器,第一次是用来取消锁屏,第二次是用来打开默认锁屏。下一个应用程序只需一次触摸即可取消2个锁屏,因此我认为这是可能的。