在 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 锁屏上显示网站 [关闭] 的相关文章

  • 使用workmanager时Firestore脱机持久性错误

    我正在使用一个WorkManger定期从我的中检索信息Firestore当应用程序处于后台和前台时的数据库 此信息用于根据状态更新 UI 因此不同的状态会添加或删除 UI 的不同部分 第一次运行时效果很好 但是 一旦应用程序处于后台并且Wo
  • CardView 圆角获得意想不到的白色

    When using rounded corner in CardView shows a white border in rounded area which is mostly visible in dark environment F
  • 无法获取log.d或输出Robolectrict + gradle

    有没有人能够将 System out 或 Log d 跟踪从 robolectric 测试输出到 gradle 控制台 我在用Robolectric Gradle 测试插件 https github com robolectric robo
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 尝试将相机切换回前面但出现异常

    尝试将相机切换回前面 但出现异常 找不到 问题请检查并帮助 error 01 27 11 49 00 376 E AndroidRuntime 30767 java lang RuntimeException Unable to start
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 发布android后更改应用内购买项目的价格

    在 Google Play 上发布后 是否可以更改应用内购买商品的价格 我假设该应用程序也已发布 完整的在线文档位于http developer android com http developer android com也http sup
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 你的CPU不支持NX

    我刚刚下载了 android studio 但是我遇到了一个问题 当我运行它时 它说你的 cpu 不支持 NX 我应该怎么办 NX 或实际上是 NX 处理器位 是处理器的一项功能 有助于保护您的 PC 免受恶意软件的攻击 当此功能未启用并且
  • 如何使用 IF 检查 TextView 可见性

    我有一个 onCheckedChangeListener 来根据选择的单选按钮显示文本视图 我有 1 个疑问和 1 个难题 想知道是否有人可以帮助我 问题 您能否将单选组默认检查值设置为 否 单选按钮 以便一开始就不会检查任何内容 问题 如
  • Ubuntu 16.04 - Genymotion:找不到 /dev/hw_random

    I install Genymotion on the Ubuntu 16 04 64Bit I created a virtual emulator for Android 6 0 then I run this emulator but
  • Google 云端硬盘身份验证异常 - 需要许可吗? (v2)

    我一直在尝试将 Google Drive v2 添加到我的 Android 应用程序中 但无法获得授权 我收到 UserRecoverableAuthIOException 并显示消息 NeedPermission 我感觉 Google A
  • Android Studio 0.4.3 Eclipse项目没有gradle

    在此版本之前 在 Android Studio 中按原样打开 Eclipse 项目似乎很容易 无需任何转换 我更喜欢 Android Studio 环境 但我正在开发一个使用 eclipse 作为主要 IDE 的项目 我不想只为这个项目下载
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • Android 套接字和 asynctask

    我即将开始制作一个应该充当 tcp 聊天客户端的应用程序 我一直在阅读和阅读 我得出的结论是最好 如果不需要 将我的套接字和异步任务中的阅读器 问题是我不确定从哪里开始 因为我是 Android 新手 这至少对我来说是一项艰巨的任务 但据我
  • Android:膨胀布局时出现 StackOverFlowError 和 InvokingTargetException

    首先 对不起我的英语 我在膨胀布局时有一个问题 我有一个自定义视图 从 LinearLayout 扩展而来 称为按钮帮助 我在名为的布局上使用该视图加载活动 我的以下代码在所有设备和模拟器上都能完美运行 但具有 QVGA 屏幕 例如 Sam
  • 实现滚动选择 ListView 中的项目

    我想使用 ListView 您可以在其中滚动列表来选择一个项目 它应该像一个 Seekbar 但拇指应该是固定的 并且您必须使用该栏来调整它 我面临的一个问题是 我不知道这种小部件是如何调用的 这使得我很难搜索 所以我制作了下面这张图片 以

随机推荐

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

    我正在开发一个网络应用程序 该应用程序使用大量模态叠加层以及模态中的可滚动内容 在触摸设备上 特别是在 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 锁定屏幕上显示它 但随后他们应该能够删除本机时钟 因为