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

问题描述:

我有一个客户项目,我必须使单个任务的Android设备。客户无法逃脱我公司开发的应用程序。此外,客户无法启动任何其他应用程序,我们的应用程序在设备启动时启动。总体而言,所有客户都可以使用该设备运行我们的应用程序。Android:如何让设备只运行一个应用程序?

是否有任何其他方法,使这项工作比生根设备,禁用所有系统的按钮,使我们的应用程序启动器。我有类似400个设备用于此目的,因此所有这些都需要花费很多时间。

我也看了谷歌的有关COSU设备教程,但发现它非常confucing https://developer.android.com/work/cosu.html#testing-plan

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

我发现对堆栈溢出类似的问题,一些帖子,但不是我要找的答案。

如果有人对这个问题的一些建议,我将非常感激。

+0

您想开发Kiosk应用吗?嗯有趣 –

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

之后去到您的移动设备和更改默认启动应用程序的设置您的应用程序。

我以前遇到同样的问题。我花了至少3天的时间进行研究。我试图找到许多解决方案,但我发现零。建立在Android之上

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 
+0

解决方案1很有创意,但我不会建议滥用系统警报对话框来实现信息亭模式。我见过第二种解决方案,但它不是一个好的解决方案。您的应用或服务可能随时崩溃或被Android杀死,让用户随意使用设备执行任何操作。如果您仍然在寻找适合Kiosk模式的优秀解决方案,请查看我的答案以获取一些替代方案:http://*.com/a/43644803/2888763 –

单一用途的设备可以得到难以实施。有几种不同的选择,但每个都有折衷。

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

另一种选择是使用谷歌的锁定任务模式 COSU设备[1]。链接处有一个漂亮的图形显示的锁定任务模式的特点:

  • 1应用程序固定到主屏幕
  • 只有应用程式白名单由DPC(设备策略控制器)可以锁定
  • 家庭和最近的按钮调用stopLockTask()

隐藏

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

    你也可以看看像梅森[5]这样的企业移动部署平台。就您而言,您可以在几分钟内创建自定义Android操作系统,并将应用锁定在自助服务终端模式(+其他功能,如禁用相机/短信,移除应用和隐藏设置等),然后将其部署到所有设备远程。如果您的需求发生变化,梅森还支持由您控制的操作系统和应用更新。

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

    声明:我梅森工作