在Android锁定屏幕上显示网站

时间:2017-04-27 01:41:31

标签: android web lockscreen

我正在寻找让Android用户在锁定屏幕上显示网站的可靠方法。 原则上可以通过3种方式完成:

  1. 在原生Android锁定屏幕上显示它,但是他们应该能够删除原生时钟,因为我的网站是世界时钟(如果你'你可以在intelnav.50webs.com/world_time.html看到它。感兴趣)。据我所知,我们无法做到这一点。
  2. 使用允许此操作的第三方自定义锁定屏幕。不幸的是,我找不到一个好的,我做了一些搜索。
  3. 自己编写自定义锁屏 这里有一些建议甚至是示例项目,甚至是StackOverflow上的一些问题。但我不确定它们有多可靠。从我发现的,没有标准的方法,因为锁屏小部件被删除。但建议自定义锁定屏幕的建议方式对我来说似乎并不可靠,我可以从我能找到的评论中判断出来。所以,我的一个问题(对不起,但问题有点复杂),是否有人知道自定义锁定屏幕的示例项目实际上有一个由它构建并在Google Play上提供的应用程序,并且实际上在广泛的范围内运行良好设备?
  4. 有人可以帮我提出一个可靠的方法来做我想做的事吗?沿着上面的路线?

1 个答案:

答案 0 :(得分:1)

看起来我会回答我自己的问题。我不确定有多少人会感兴趣,但你永远不会知道。

更新第18页:现在有一个简短的答案,一年前我第一次回答时没有。即,我自己的WebLock应用程序:

https://play.google.com/store/apps/details?id=com.simionescu.vlad.weblock

以下是我的原始答案,概述了如何以编程方式完成此操作。

所以我进入了挖掘,看起来可以做到。它并不像我担心的那样困难,尽管我不会说这也很容易。 主要内容如下:

  1. 我写了一个应用程序,基本上将该网站放在原生的Android锁定屏幕上。 (实际上,我已经有了一个应用程序,我已经添加了这个功能,但这并不重要。主要的是我的方法需要编写应用程序。)
    所以我想这可能介于上面的案例1和3之间。我确实需要一个应用程序,但它不是一个完整的自定义锁定屏幕,如下所述 这当然意味着该方法更通用,它适用于任何应用程序,而不仅仅用于显示网站。

  2. 为“活动”窗口设置FLAG_SHOW_WHEN_LOCKED,如下所示:
    How to make our own lock screen in android instead of default lock screen
    但我只使用了这个标志,在我不需要的链接中提到的另外3个。

  3. 启动活动(如果它尚未运行)并在设备屏幕关闭之前将其设置为顶部,即收到ACTION_SCREEN_OFF事件。这样,当屏幕熄灭时,应用程序始终可见,因此下次启动时,Android会将其置于锁定屏幕前。 (至少如果它是标准的那个;从文档中看起来它应该也可以使用自定义锁定屏幕,但我没有测试它。我想这取决于自定义锁定屏幕是如何无论如何,我不一定要将自己的网站放在自定义锁定屏幕上,如果用户有一个他可能不会想要在我面前看到我的网站的话。) 这也意味着如果设备关闭然后再打开,该网站将显示在前面,即使它未被锁定。这就是我的意图。

  4. 通过BOOT_COMPLETED事件在启动时自动启动应用

  5. 捕获标准后退键(允许使用,与主页键不同)并使其像主键一样,否则将终止应用程序。
    我故意让主键正常行动。这当然意味着在按下它之后(这是用户退出应用程序并进入设备的方式),显示下面的锁定屏幕。否则我将不得不处理密码保护设备,这绝不是我想做的事情。这种方法有一些缺点,但IMO很小。为了简单起见,我选择这样做。
    此外,这样我的应用程序仍然可靠,如果我劫持了主页密钥,无论哪种方式,它都不会有。 如上所述,这意味着这不是一个完整的自定义锁定屏幕,只是将网站置于默认锁定屏幕上的一种方式。

  6. (更新11月18日)还有一个重点。如上所述,这样的应用程序可能存在安全问题。我不是专家,所以我不确定它是否真的如此,如果是,那么它有多重要,但你永远不会太安全。如果用户可以取消选中任何站点,当在锁定屏幕上时,这意味着如果手机丢失并且坏人找到它,他可能会进入具有可能解锁设备的危险代码的站点。我不确定它是否真的可以完成,但我不会感到惊讶。因此,对于编写此类应用程序的任何人来说,一个好的建议是在锁定屏幕上严格(但合理地)限制Web导航。

  7. 这些是要点,还有一些其他的实施细节,但我暂时将它们排除在外。

    所有这些对我来说都非常标准和可靠,因为它在官方的Android文档中都有。 我在我的KitKat设备上测试了它,加上2个仿真器,一个还有KitKat,另一个是最新的和最好的。一切似乎都很好。包括设备/仿真器受密码保护的情况。

    所以我刚刚编写应用程序并将其发布在Google Play上。它在这里:

    https://play.google.com/store/apps/details?id=com.a50webs.intelnav.worldtime

    这意味着现在Google Play上至少有一款具有此功能的应用。它的表现有多好还有待观察。我可能不得不在接下来的几周内做一些小修改,但除此之外它应该没问题。

    同样在未来几周内,也许一个月左右,我计划根据用户的要求,在任何网站上放置另一个应用程序。

    (更新11月18日)我终于编写了应用并将其放在Google Play上。它比计划花了一点时间,但已经准备好了。它在这里:

    https://play.google.com/store/apps/details?id=com.simionescu.vlad.weblock&hl=en

    如上所述,当在锁定屏幕上时,导航仅限于同一个域,因此如果坏人找到手机,他就无法访问某个恶意软件网站并将其解锁。