【问题标题】:How to bypass 'swipe to unlock' screen如何绕过“滑动解锁”屏幕
【发布时间】: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


【解决方案1】:

不需要听指纹,只需在设备解锁时注册并关闭锁定屏幕:

void registerUnlockReceiver() {
    IntentFilter i = new IntentFilter(Intent.ACTION_USER_PRESENT);
    registerReceiver(mUserUnlockedReceiver , i);
}

BroadcastReceiver mUserUnlockedReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        unlockAndExit(false);
    }
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    相关资源
    最近更新 更多