Android 锁定屏幕小工具

一些用户问我 Android 锁屏插件的应用程序-我相信他们想要一个插件,保持在他们的锁屏,并允许他们与应用程序交互。

我还没有能够找到任何官方文件为这一点-我发现的唯一的事情是应用程序,将采取主屏小部件,并把他们在锁定屏幕上为您。

关于我在哪里学到更多关于构建真正的锁屏小部件,有什么线索吗?

79054 次浏览

锁屏交互很困难。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

FLAG_SHOW_WHEN_LOCKED

窗口标志: 特殊的标志,让窗口显示时,屏幕是 锁上了。

FLAG_DISMISS_KEYGUARD

窗口标志: 当设置窗口时,将导致密钥保护为 解散,只有当它不是一个安全的 锁式钥匙保护器。因为这样的钥匙保护器 不是为了安全,而是为了 如果用户导航,则永远不要重新出现 到另一个窗口(与... 相反) FLAG _ SHOW _ when _ LOCKED,它只会 暂时隐藏安全和 不安全的钥匙保护,但确保他们 当用户移动到 另一个不隐藏它们的 UI) 密钥保护器当前处于活动状态,并且 是安全的(需要解锁模式) 比用户仍然需要的多 在看到这个窗口之前确认一下, 除非 FLAG _ SHOW _ When _ LOCKED 也具有 准备好了。 常数值: 4194304(0x00400000)

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

  1. 如果你有一个应用程序,你想把在锁定屏幕上,首先 把它变成应用程序小工具。您可以使用 AppWidget类来完成这项工作。
  2. 现在,对小部件使用从 Android API 到 让你的锁屏成为主机AppWidgetHost类。我不知道如何做到这一点,但有一些现有的实现,如 我的机器人(下面的链接)。

资源

Http://code.google.com/p/mylockforandroid/ (注意: 此代码适用于较老版本的 Android,Android 4.2及以上版本内置了锁屏小部件支持)

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

正式锁屏小部件文档是 给你