锁屏互动很难。 Android允许使用两个窗口标志(FLAG_SHOW_WHEN_LOCKED和FLAG_DISMISS_KEYGUARD)进行基本操作。 FLAG_SHOW_WHEN_LOCKED的工作原理非常一致,即使启用了安全性,它也会显示在锁定屏幕的顶部(不会绕过安全性,您无法切换到另一个非FLAG_SHOW_WHEN_LOCKED窗口)。
如果您只是在做一些临时的事情,例如在播放音乐或类似音乐时,您可能会没事。 如果您尝试创建自定义锁屏,则在所有不同的android平台上都会有很多异常的交互。 (“帮助!如果不重新启动HTC手机,我将无法关闭闹钟”)。
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
[http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html]
FLAG_SHOW_WHEN_LOCKED
窗口标志:特殊标志,可让您在屏幕显示时显示窗口 锁定。
FLAG_DISMISS_KEYGUARD
窗口标志: 设置窗口时,将使键盘锁处于 仅在不安全的情况下解雇 锁定键盘锁。 因为这样的键盘锁 不需要安全性,它将 如果用户导航,则永远不会再出现 到另一个窗口(与 FLAG_SHOW_WHEN_LOCKED,只会 暂时隐藏安全和 非安全的键盘保护程序,但要确保他们 当用户移至时重新出现 另一个不会隐藏它们的UI)。 如果 键盘锁当前处于活动状态,并且 是安全的(需要解锁图案) 比用户仍然需要 在看到此窗口之前先进行确认, 除非FLAG_SHOW_WHEN_LOCKED也有 被设置。 常数值:4194304(0x00400000)