如何使一个应用无法关闭?

3
当用户打开我的应用程序后,我不希望他们能够退出。因此,当他们按下主页或返回按钮时,它不会让他们退出应用程序。我知道有使用服务的方法可以使应用程序始终在后台运行,但我甚至不希望他们退出。
这是否可能?如果是,如何实现?而不必黑客内核。
我知道这听起来很奇怪,但这不是为了商业应用程序,而是为了我的实验室,它永远不会出现在GooglePlay上。这些平板电脑将分配给小孩子,并且他们将在上面进行测试,因此我不能让他们使用YouTube或其他任何东西。

相关文章:Android,如何使应用程序的任务无法关闭?只能通过结束任务关闭

CommonWare的答案似乎表明内核黑客是唯一的方法,但是这是真的吗?

此外,我正在使用Android L


1
如果只是为了您的实验室,请不要按返回按钮 - T.J. Crowder
我不想整天都在打人的手,当他们这样做的时候。 - J_Strauton
如果我不小心使用了这样的应用程序,我会永远诅咒它。 - Phantômaxx
如果你太害怕了,你随时可以重新启动平板电脑。 - J_Strauton
1
禁用返回按钮非常容易(只需覆盖onBackPressed()),但我认为主页按钮故意难以重新配置。 - Richard Tingle
显示剩余4条评论
2个回答

3
目前还没有官方支持 - 通过任务锁定API,Android L将提供支持。
L开发者预览版引入了新的任务锁定API,允许您暂时限制用户离开您的应用程序或被通知打断。例如,如果您正在开发支持在Android上进行高风险评估要求的教育应用程序,那么可以使用此功能。一旦您的应用程序激活此模式,用户将无法查看通知,访问其他应用程序或返回主屏幕,直到您的应用程序退出该模式。

https://developer.android.com/preview/api-overview.html

编辑:正如你所说,如果你使用L这个方法已经过时了,但是我还是留在这里给其他人一些提示。

话说回来,如果你需要(例如在某种硬件上使用kiosk模式应用程序),你也可以在不获取root权限的情况下获得此类工作。这并不简单,并且没有适用于所有设备的解决方案,但是如果您需要,可以通过以下技巧使其工作: - 对主屏幕意图做出反应(并将其设置为默认值) - 当你进入后台时,再次将自己置于前台 - ..


太棒了,我正在使用L!忘记提到了。 - J_Strauton
4
@FrankN.Stein,这个有着合理使用场景。 - ligi
@J_Strauton 很好!那你可能想考虑接受这个答案。 - ligi
@ligi ... 例如? - Phantômaxx

0

谷歌似乎有一种叫做COSU的东西,用于设置单一用途设备。

Android 5.0 Lollipop引入了两种新的配置方式,用于将Android设备配置为单一用途:

  • 通过应用程序固定,设备用户可以暂时将特定应用程序固定在屏幕上。
  • 使用锁定任务模式,用户无法退出应用程序,Home和Recents按钮也被隐藏。此外,锁定任务模式为IT管理员提供了更强大的管理COSU设备的方式,如下所述。

以及

作为IT管理员,您可以将Android 6.0 Marshmallow及更高版本的设备配置为公司拥有的单一用途(COSU)设备。这些是用于单一用途的Android设备,例如数字标牌、票务打印、销售点或库存管理。要将Android设备用作COSU设备,您需要开发Android应用程序,供客户管理。

从这里开始

这里有一个相关的代码实验室

针对早期版本的安卓系统,我在这里找到了如何在Android中创建可工作的展示模式,其中展示了一些禁用按钮、在启动和锁定后重新启动应用程序的技巧。 请注意,大多数这些技巧在安卓6及更高版本上不适用


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接