Android:如何让设备只运行一个应用程序?

Nah*_*hka 14 android android-screen-pinning cosu

我有一个客户项目,我必须制作单任务Android设备.客户无法逃避我公司开发的应用程序.客户也无法启动任何其他应用程序,并且在启动设备时启动了我们的应用程序.总体而言,所有客户都可以使用该设备运行我们的应用程序.

有没有其他方法来完成这项工作而不是生根设备,禁用所有系统按钮并使我们的应用程序成为启动器.我有400个设备用于此目的,因此根除所有这些将耗费大量时间.

我还阅读了Google有关COSU设备的教程,但发现它非常容易混淆https://developer.android.com/work/cosu.html#testing-plan

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

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

如果有人对这个问题有一些提示,我将非常感激.

Tre*_*son 9

基于Android构建的单一用途设备可能难以实施.有几个不同的选择,但每个选项都有权衡.

正如您所提到的,生根设备将在功能上为您提供所需的功能 - 但是数百台设备需要root,很难维护,并且您(可能)会向您的设备和应用程序引入安全问题.

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

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

使用Google的解决方案有一些缺点.首先,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还支持由您控制的操作系统和应用更新.

如果这听起来很有用,请随时与我联系: trevor @ bymason.com

免责声明:我为梅森工作


小智 -2

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

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