Androidlocking屏幕小部件

一些用户一直在问我为我的应用程序安卓locking屏幕小部件 – 我相信他们想要一个小部件停留在他们的锁屏,并允许他们与应用程序进行交互。

我一直没有find任何官方文档 – 我发现的唯一的东西是应用程序,将主屏幕小部件,并把他们在你的锁屏。

任何线索我在哪里了解更多关于构build真正的锁屏小部件?

锁屏交互很困难。 Android允许使用两个窗口标志(FLAG_SHOW_WHEN_LOCKED和FLAG_DISMISS_KEYGUARD)进行基本操作。 FLAG_SHOW_WHEN_LOCKED的工作原理是一致的,即使启用了安全性(安全性未被忽略,也不能切换到另一个非FLAG_SHOW_WHEN_LOCKED窗口),它将显示在locking屏幕的顶部。

如果你只是暂时做一些事情,比如音乐播放或者类似的事情,那么你大概会没事的。 如果你想创build一个自定义的locking屏幕,那么在所有不同的android平台上有很多不寻常的交互。 (“无需重启我的HTC手机,我无法closures闹钟”)。

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 

窗口标志:当屏幕locking时,可以显示窗口的特殊标志。

 FLAG_DISMISS_KEYGUARD 

窗口标志:设置窗口时,只有在不是安全locking键盘锁的情况下才会使键盘锁被解除。 由于安全性并不需要这样的键盘保护,所以如果用户导航到另一个窗口,它将不会再次出现(与FLAG_SHOW_WHEN_LOCKED相比,FLAG_SHOW_WHEN_LOCKED只会暂时隐藏安全和非安全的键盘锁,但确保它们在用户移动时重新出现另一个UI不会隐藏它们)。 如果键盘锁当前处于活动状态且安全(需要解锁图案),则在看到此窗口之前,用户仍然需要确认它,除非已设置FLAG_SHOW_WHEN_LOCKED。 常量值:4194304(0x00400000)

官方locking屏幕小部件文件在这里

我不得不为我的项目实现一个锁屏小部件。 在这个过程中,我积累了一些资源。

  1. 如果你有一个应用程序,你想把它放在锁屏上,首先使它成为appwidget 。 您可以使用AppWidget类来执行此操作。
  2. 现在,使用Android API中的AppWidgetHost将您的locking屏幕作为小部件的主机 。 我不知道如何做这部分,但有一些现有的实现,如mylockandroid (下面的链接)。

资源

http://code.google.com/p/mylockforandroid/(NB此代码适用于旧版本的Android,Android 4.2及更高版本内置了锁屏窗口小部件支持)

http://mylockandroid.blogspot.com/2010/03/widget-lockscreen-beta-11-r2.html