0

我开发了一个婴儿应用程序,我需要锁定应用程序的所有键和方式,以便能够将电话交给我的女儿。我使用“替换主屏幕”的方法来捕获主键,效果很好。所有其他硬键(电源按钮除外,但这不是问题,因为它无论如何都不容易按下)被锁定。但是经常讨论的长按主页键仍然是启动最近的应用程序并提供了一条出路(当然女儿几乎立即找到了)。

我已经看到市场上的其他应用程序(幼儿锁等)通过清空最近的应用程序列表(或用一个指向婴儿应用程序的图标填充它)来解决这个问题,但我不知道如何实现这一点。有人有解决方案吗?如何从我的应用程序中填写最近的应用程序?幼儿锁甚至会在锁应用退出后重置最近的应用。

4

2 回答 2

0

您需要执行 Mobius 帖子中描述的操作,但还要在 android 清单文件中的虚拟活动元素上设置 android:taskAffinity=""。

于 2012-08-21T01:16:30.883 回答
0

您可以在应用程序中创建一个不执行任何操作的活动,并以设置了 FLAG_ACTIVITY_NEW_TASK 标志的意图启动它。无论您需要多次填写历史记录,都可以触发此意图(我的 Incredible 有 8 个位置)。要重新填充历史记录,请查看 ActivityManager.RecentTaskInfo.getRecentTasks (int maxNum, int flags) 请参阅文档 看起来您需要持有 GET_TASKS 权限

最初触发这些应用程序的意图存储为 baseIntent,因此您应该能够自己存储它们(不要忘记附加内容),然后重新触发它们以重新填充历史列表。

这是一个黑客,但它应该工作

编辑:玩了一点之后,看起来你需要有 8 个不同的活动才能使这种方法起作用,这是不现实的。

于 2011-07-30T23:23:42.490 回答