20

我有一个客户项目,我必须在其中制作单任务 android 设备。客户无法逃脱我公司开发的应用程序。此外,客户无法启动任何其他应用程序,并且我们的应用程序在设备启动时启动。总体而言,客户能够使用该设备做的就是运行我们的应用程序。

除了生根设备,禁用所有系统按钮并使我们的应用程序成为启动器之外,还有其他方法可以使这项工作。为此,我有大约 400 台设备,因此将所有这些设备生根会花费大量时间。

我还阅读了谷歌关于 COSU 设备的教程,但发现它非常令人困惑https://developer.android.com/work/cosu.html#testing-plan

Androids 自己的屏幕固定不够好,因为客户可以逃避应用程序。有些人可能会建议使用像 SureLock 这样的信息亭应用程序,但我公司的目标是在不使用任何第三方应用程序的情况下找到明确的解决方案。通过一些信息亭应用程序运行我们的应用程序也不是我们的目标。

我在 Stack Overflow 上发现了一些类似问题的帖子,但不是我正在寻找的答案。

如果有人对这个问题有一些提示,我将不胜感激。

4

3 回答 3

11

基于 Android 构建的单一用途设备可能难以实现。有几种不同的选择,但每种都有取舍。

正如您所提到的,生根设备将在功能上为您提供所需的功能 - 但是,数百个设备生根将非常耗时,难以维护,并且您将(可能)向您的设备和应用程序引入安全问题。

另一种选择是为 COSU 设备[1]使用 Google 的锁定任务模式。那里的链接有一个很好的图形显示锁定任务模式的功能:

  • 1 个应用固定到主屏幕
  • 只有被 DPC(设备策略控制器)列入白名单的应用才能被锁定
  • 隐藏的主页和最近按钮
  • 通过调用退出stopLockTask()

使用谷歌的解决方案有一些缺点。首先,Google 建议创建(并因此维护)一个完全独立的 DPC 应用程序,以作为设备所有者运行并设置策略[2]。您还将依赖 Google Play 来管理应用程序更新,并且需要拥有与每台设备关联的 Play 帐户,这些帐户“用于识别不与单个用户绑定的单个设备,以简化每个设备的应用程序分发规则在 COSU 风格的场景中”[3]。要在设备上自动获取您的 DPC 应用程序,您的“DPC 必须在 Google Play 上公开可用,并且最终用户可以通过输入 DPC 特定标识符从设备设置向导安装 DPC。”[3] 您还需要将用户应用程序上传到 Google Play[4],这对于一些不这样做的人来说可能是个问题 不希望他们的应用在 Play 上。走这条路可以为您提供所需的功能,但可能会很复杂,而且您和您的客户与 Google/Play 服务及其工作流程非常紧密地联系在一起。

您还可以查看 Mason[5] 等企业移动部署平台。在您的情况下,您可以在几分钟内创建一个自定义 Android 操作系统,并将您的应用程序锁定在信息亭模式(+ 其他功能,如禁用相机/短信、删除应用程序和隐藏设置等),然后将其部署到您的所有设备远程。如果您的要求发生变化,Mason 还支持由您控制的操作系统和应用程序更新。

免责声明:我为梅森工作

于 2017-04-26T21:27:14.637 回答
0

我以前也遇到过同样的问题。我花了至少 3 天的时间做研究。我试图找到很多解决方案,但我发现为零。

    How I solve is

    1. Up To JellyBean 
     - Use System Alert Dialog (And make it transparent and small size like 2 * 2 And display in some corner(User can't see it)). User can't press home button If there is system Alert dialog

    2. After JellyBean, This method doesn't work. The user can press the home button even though there is System Alert Dialog.
    so what I did is, start the service on stop and start the same activity again and again(within sec). So user can't see any difference.Don't forget to make activity as single task so that even though you start same activity from service, again and again, new activity will not create (So Ugly way )

    - You can simple make screen full screen. make sure in kiosk mode try to check if the screen is in full-screen mode. if not make it full-screen mode(its not hard to do)

    - other way is to make launcher app but when ever you pressed home button it always asked to choose launcher app. if user mistakenly choose default/ other launcher app, this solution doesnt work

    Good luck
于 2017-02-13T09:15:09.667 回答
-2

通过在清单文件中定义将您的应用程序作为启动器应用程序。

之后转到您的移动设备的设置并将默认启动器应用程序更改为您的应用程序。

于 2017-02-13T09:12:26.660 回答