【发布时间】:2017-06-21 12:21:08
【问题描述】:
我正在实现一个自定义的“滑动解锁”屏幕。
如果设置中的“屏幕锁定”是“滑动”,我的应用程序可以正常运行。 在我的自定义“滑动解锁”屏幕中 -> 用户滑动解锁 -> 通过在我的活动中添加以下代码直接解锁手机并进入主屏幕:
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(); }
目前,我必须触摸传感器两次,第一次是关闭我的锁定屏幕,第二次是默认锁定屏幕。 next app可以一键关闭2个锁屏,所以我认为是可以做到的。
【问题讨论】:
-
成为供应商/系统应用程序。
-
你不能没有系统权限,因为下一次滑动解锁(使用密码),基于系统,在其他一些设备上,不会有秒屏,只有密码。跨度>
-
@GensaGames 这意味着无根设备是不可能的?
-
在查看了gravitybox是如何做到的之后,我得出的结论是,实际上没有root是没有办法做到这一点的。使用设置键 PREF_KEY_LOCKSCREEN_DIRECT_UNLOCK 引用 github.com/GravityBox/GravityBox/blob/marshmallow/src/com/ceco/…
标签: android fingerprint lockscreen