一些用户一直在问我的应用程序的Android锁定屏幕小部件 - 我相信他们希望一个小工具保持在他们的锁定屏幕上,并允许他们与应用程序进行交互。
我无法找到任何关于此的官方文档 - 我发现的唯一一个应用程序将带回主屏幕小部件并将它们放在锁定屏幕上。
有关构建真正的锁屏小部件的更多信息的任何线索?
答案 0 :(得分:54)
锁屏交互很困难。 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)
答案 1 :(得分:28)
官方锁定屏幕小部件文档为here
答案 2 :(得分:10)
我必须为我的项目实现一个锁屏小部件。在这个过程中,我积累了几个资源。
AppWidget
类来执行此操作。AppWidgetHost
类来为小部件使您的锁定屏幕成为主机。我不知道如何做这个部分,但有一些现有的实现,如 mylockandroid (下面的链接)。http://code.google.com/p/mylockforandroid/ (注意,此代码适用于较早版本的Android.Android 4.2及更高版本内置了锁屏小部件支持)
http://mylockandroid.blogspot.com/2010/03/widget-lockscreen-beta-11-r2.html