在 Android 锁屏上显示网站 [关闭]

2023-12-08

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

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

有人可以帮我建议一个可靠的方法来做我想做的事吗?沿着上面的思路?


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

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

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

以下是我的原始答案,它给出了如何以编程方式完成此操作的总体思路。

于是我开始挖掘,看起来是可以完成的。它甚至没有我担心的那么困难,尽管我也不会说它很容易。 主要有以下几点:

  1. 我编写了一个应用程序,基本上可以将网站置于本机 Android 锁定屏幕上。 (实际上,我已经有一个应用程序,并且我向其中添加了此功能,但这不太重要。主要是我的方法需要编写一个应用程序。)
    所以我猜这属于上述情况 1 和 3 之间。我确实需要一个应用程序,但它不是一个成熟的自定义锁定屏幕,如下所述。
    这当然意味着该方法更通用,它适用于任何应用程序,而不仅仅是用于显示网站。

  2. 为“活动”窗口设置 FLAG_SHOW_WHEN_LOCKED,如下所示:
    如何在android中制作自己的锁屏而不是默认锁屏
    但我只使用了这个标志,链接中提到的其他 3 个标志我不需要。

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

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

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

  6. (11 月 18 日更新)还有一点很重要。正如到目前为止所描述的,此类应用程序可能存在安全问题。我不是专家,所以我不确定它是否真的如此,如果是的话它有多重要,但你永远不会太安全。如果用户在锁定屏幕上时可以不受检查地访问任何网站,则意味着如果手机丢失并且坏人发现了它,他可以访问包含可以解锁设备的危险代码的网站。我不确定这是否真的可以做到,但我不会感到惊讶。因此,对于任何编写此类应用程序的人来说,一个好的建议是在锁定屏幕上严格(但合理)限制 Web 导航。

这些是要点,还有一些其他实现细节,但我暂时不考虑它们。

所有这些对我来说看起来都非常标准和可靠,因为它们都在官方 Android 文档中。 我在我的 KitKat 设备和 2 个模拟器上进行了测试,其中一个也装有 KitKat,另一个装有最新、最好的模拟器。一切似乎都运转良好。包括设备/模拟器受密码保护的情况。

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

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

这意味着现在 Google Play 上至少有一个应用程序具有此功能。其表现如何还有待观察。我可能需要在接下来的几周内进行一些小的修正,但除此之外应该没问题。

另外,在接下来的几周内,也许一个月左右,我计划放置另一个应用程序,根据用户的要求,该应用程序通常可以在任何网站上执行此操作。

(11 月 18 日更新)我终于编写了该应用程序并将其放在 Google Play 上。虽然比计划的时间要长一些,但已经准备好了。它在这里:

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android 锁屏上显示网站 [关闭] 的相关文章

随机推荐

  • 在模态上滚动时防止触摸设备上的主体滚动

    我正在开发一个网络应用程序 该应用程序使用大量模态叠加层以及模态中的可滚动内容 在触摸设备上 特别是在 Android 上 移动浏览器希望滚动模式后面的正文内容 而不是模式内的实际可滚动内容区域 或者 如果内容确实滚动 当它到达可滚动区域的
  • 将 byte[] 转换为图像

    我已将图像上传到我的数据库中byte 现在我想把它展示出来 出现错误 用户代码未处理参数异常Parameter is not valid 在这一行 newImage System Drawing Image FromStream strea
  • 使用 JSoup 从表中提取数据

    我想使用 JSoup 框架提取该表 以将内容保存在 表 数组中 第一个 tr 标签是表头 以下所有内容 不包括在内 描述了该内容 table width 100 cellspacing 0 cellpadding 4 border 1 tr
  • 只允许图像FILE_UPLOAD

    基本上下面的代码只允许图片通过我添加的 mov and mp4到允许列表 但上传时它仍然输出该文件不是图像 只是想知道我哪里出了问题 帖子及形式
  • 如何使用手柄在android中缩放视图?

    我正在尝试实现一个手柄来缩放 android 中的视图 我不想使用多点触控之类的东西 而是希望能够仅用一根手指来调整图像大小 这是我的活动代码 我觉得好像我非常接近 但有五件事无法正常工作 缩放已关闭 它的增长速度比应有的要快得多 Solv
  • 在运行时确定泛型方法参数的类型

    给定一个具有以下结构的类 我试图确定泛型方法的调用者分配的参数 T 的类型 public class MyClass public
  • 使用 GKMatch 的 Game Center 多人游戏但似乎无法连接

    大家好 我是 iOS 游戏中心的新人 我正在尝试将使用匹配的多人游戏功能添加到我的游戏中并遵循文档 到目前为止 我的 2 个客户端可以成功获得匹配 即调用 matchmakerViewController didFindMatch 回调并传
  • 使用 Google Apps 脚本将数据从数组复制/推送到工作表范围,一次一行

    我在原始表上使用 getValues 创建了一个多维数组sheetValues 我想将sheetValues数组中的值复制到目标工作表中 如何将sheetValues数组每行的内容推送到目标工作表中 什么函数允许我将数组的每一行一次一行 检
  • 如何知道我在 Windows 批处理文件中连接的是哪个 SSID?

    目前 我有 2 个批处理文件 可以使用注册表编辑器打开和关闭代理 Like reg add HKCU Software Microsoft Windows CurrentVersion Internet Settings v ProxyEn
  • java 9未命名模块在调试时从两者读取包[X](使用IntelliJ)

    在我的项目中 我有一个使用多个第三方库的包 让我们看一下依赖树 INFO commons logging commons logging jar 1 2 compile INFO org apache directory studio or
  • id:css中的悬停id?是否可以?

    这是我的 html 代码 div div div div div div div div 这是我的 CSS 代码 这个悬停为什么不起作用 谁来帮帮我 我需要当我悬停 id 1时 将更改背景颜色 id 2 因为这些 div
  • XTS 将函数应用于一天中的时间子集?

    如何将汇总函数应用于一天中的时间子集 例如 r T16 00 T17 00 Value 我怎样才能应用类似的东西function x quantile x c 90 每天样本小时的价值 您可以使用apply daily在完成一天中的时间子集
  • 正则表达式匹配空格,但不在“字符串”中

    仅当空格未用双引号 括起来时 我才会查找匹配空格的正则表达式 例如 在 Mary had a little lamb 它应该匹配第一个和第二个空格 但不匹配其他空格 我想分割字符串only不在双引号内的空格处 也不在引号处 我正在使用 C
  • 有没有更快的 CountIF

    正如标题所说 是否有任何函数或 VBA 代码可以执行与 countif 相同的功能并且速度更快 目前正处于大规模计数阶段 它正在耗尽我的 CPU 它只是工作表中的基本计数 不在 VBA 中 countif X X Y 然而 名单非常庞大 所
  • 模拟器总是崩溃并显示错误“等待设备时出错:AVD 的模拟器进程已终止”

    我现在被困在假设它的硬件上 但没有太大意义 因为它以前可以工作 并且突然停止了 昨天一整天 当尝试在任何设备 任何 api 任何应用程序中打开模拟器 包括仅打开模拟器本身 时 我收到此崩溃消息 我尝试过卸载并安装 android studi
  • 在 Apache Spark Python 中自定义 K-means 距离公式

    现在我使用 K means 进行聚类和跟踪本教程 and API 但我想使用自定义公式来计算距离 那么如何使用 PySpark 在 k means 中传递自定义距离函数呢 一般来说 使用不同的距离度量没有意义 因为 k 均值 与k 中心点
  • 尝试使用 NDK 构建 PocketSphinxAndroidDemo 时出现问题

    我正在尝试编译 PocketSphinxAndroidDemo 它提供了 Android 上 CMU pocketsphinx 语音识别器的示例实现 我首先收到类似于讨论的错误here 执行 ndk build 后 出现以下错误 Gdbse
  • scala slick 方法我到目前为止还无法理解

    我尝试去理解一些 Slick 的作品以及它的要求 这是一个例子 package models case class Bar id Option Int None name String object Bars extends Table B
  • 为什么路径 [/ABC] 上下文中 servlet [XYZ] 的 Servlet.service() 抛出异常

    我无法弄清楚为什么会出现此错误 我已经检查并重新检查了我的代码似乎没有发现任何错误 16 Jul 2012 3 21 25 AM org apache catalina core StandardWrapperValve invoke SE
  • 在 Android 锁屏上显示网站 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我正在寻找一种可靠的方法来让 Android 用户在锁定屏幕上显示网站 原则上可以通过三种方式完成 在本机 Android 锁定屏幕上显示它 但随后他们应该能够删除本机时钟 因为