2017-04-27 97 views
0

我正在寻找一种可靠的方式让Android用户在锁定屏幕上显示网站。 这原则上可以进行3种方式:在Android锁屏上显示网站

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

有没有人可以帮我建立一个可靠的方法来做我想做的事?沿着上面的路线?

回答

1

看起来我要回答我自己的问题。我不确定有多少人会感兴趣,但你永远不知道。
所以我开始挖掘,看起来可以完成。这并不像我担心的那样困难,尽管我不会说这很容易。 要点如下:

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

  2. 设置FLAG_SHOW_WHEN_LOCKED为活动窗口,如图所示,例如在这里:
    http://stackoverflow.com/questions/24598612/how-to-make-our-own-lock-screen-in-android-instead-of-default-lock-screen
    但我只使用该标志,在链接中提到的其他3我并不需要。

  3. 启动活动(如果它尚未运行)并在设备屏幕熄灭之前将其设置在最上方,即收到ACTION_SCREEN_OFF事件。这样,当屏幕熄灭时,应用程序始终可见,所以下次启动时,Android会将其放在锁定屏幕的前面。 (至少如果它是标准的;从文档看,它应该也可以使用自定义的锁定屏幕,但我没有测试它,我想这取决于自定义锁定屏幕的写法。我不希望我的网站在自定义锁定屏幕上,如果用户有一个他可能不希望在我面前看到我的网站)。
    这也意味着,如果设备关闭再打开,即使没有锁定,该网站也会显示在前面。这是我的意图。

  4. 自动通过BOOT_COMPLETED事件

  5. 捕获的标准返回键(这是允许的,不像Home键),开始启动应用程序并使其像Home键时,它会以其他方式终止应用程序。
    我故意让主键正常工作。这当然意味着按下后(这是用户退出应用程序并进入设备的方式),显示下面的锁定屏幕。否则,我将不得不面对密码保护设备,这绝不是我想要做的事情。这种方法有一些缺点,但它们很小。为了简单起见,我选择了这样做。
    此外,这种方式我的应用程序仍然可靠,如果我劫持了主键,不管这种方式如何,它都不会有。
    如上所述,这意味着这不是完整的自定义锁定屏幕,只是将网站置于默认锁定屏幕上的一种方式。

  6. (update nov。18)还有一点更重要。如迄今所描述的,这样的应用程序可能存在安全问题。我不是专家,所以我不确定它是否确实如此,如果确实如此,它是多么重要,但是你永远不会太安全。如果用户可以取消选中任何网站,那么在锁定屏幕上时,这意味着如果手机丢失并且一个坏家伙发现了这个网站,他可能会去一个有危险代码的网站解锁设备。我不确定是否真的可以做到,但我不会感到惊讶。所以,编写这样一个应用程序的任何人的一个好建议是在锁定屏幕上严格(但合理地)限制Web导航。

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

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

所以我只写了应用程序,并将它发布到Google Play上。它在这里:

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

这意味着目前至少有上谷歌播放具有此功能的应用程序。它的行为有多好,还有待观察。我可能不得不在未来几周内稍作修改,但除此之外它应该没问题。

同样在接下来的几周内,也许一个月左右,我打算把另一个应用程序,通常与任何网站,根据用户的要求做到这一点。

(update nov。18)我终于写了应用程序,并把它放在Google Play上。它比计划花了一点时间,但已经准备好了。它在这里:

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

如上所述,当锁定屏幕上导航仅限于相同的域,因此,如果一个坏家伙找到了手机,他不能去一些恶意网站和解锁。