代码之家  ›  专栏  ›  技术社区  ›  Lars K.

从代码中启用或禁用PatternLock屏幕

  •  4
  • Lars K.  · 技术社区  · 16 年前

    我的想法是编写一个服务,在一些用户活动后禁用该模式,并在一段时间后重新启用它((甚至更多)

    我知道我可以使用以下方法完全防止锁定:

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
    

    KeyguardLock.disableKeyguard()
    

    com.android.internal.widget.LockPatternUtils 在设置活动使用的android源代码中,但这个类(至少据我所知)无法被“普通”应用程序访问。

    2 回复  |  直到 14 年前
        1
  •  3
  •   Jibran Khan    13 年前

    你有没有试过看你的代码 com.android.internal.widget.LockPatternUtils 做它能做的事?

    public void setLockPatternEnabled(boolean enabled) {
        setBoolean(android.provider.Settings.System.LOCK_PATTERN_ENABLED, enabled);
    }
    
    private void setBoolean(String systemSettingKey, boolean enabled) {
        android.provider.Settings.System.putInt(
                        mContentResolver,
                        systemSettingKey,
                        enabled ? 1 : 0);
    }
    

        2
  •  4
  •   hackbod    16 年前

    从2.0(API级别5)起,您可以使用此窗口标志来防止在显示窗口时显示锁定屏幕:

    http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_SHOW_WHEN_LOCKED

    您还可以使用此标志在显示窗口时允许解除非安全键盘保护:

    http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_DISMISS_KEYGUARD

    请注意,这些不允许您绕过应用程序环境之外的锁屏,这是一个有意的设计决策。

    还有一个较旧的API,允许您以类似于唤醒锁定的方式隐藏锁定屏幕:

    http://developer.android.com/reference/android/app/KeyguardManager.html#newKeyguardLock(java.lang.String)

    推荐文章