我开发了一个婴儿应用程序,我需要将所有按键和方法锁定在应用程序之外,以便能够将电话交给我的女儿。我使用“替换主屏幕”方法来捕获主页键,这很有效。所有其他硬键(电源按钮除外,但这不是问题,因为它不容易被按下)被锁定。但经常讨论的长按主页仍然是推出最近的应用程序,并提供了一条出路(当然女儿几乎立即发现)。
我已经看到市场上的其他应用程序(幼儿锁和更多)通过清空最近的应用程序列表(或用一个可以回到婴儿应用程序的图标填充它)解决这个问题,但我不知道如何完成这个。有人有解决方案吗?如何从我的应用中填写最近的应用?退出锁定应用程序后,幼儿锁甚至会重置最近的应用程序。
答案 0 :(得分:0)
您可以在应用程序中创建一个不执行任何操作的活动,并使用设置了FLAG_ACTIVITY_NEW_TASK标志的intent启动它。 无论如何需要填写历史记录(我的Incredible有8个点)。要重新填充历史记录,请查看ActivityManager.RecentTaskInfo.getRecentTasks(int maxNum,int flags)
See Documentation
您似乎需要持有GET_TASKS权限
最初解雇这些应用程序的意图存储为baseIntent,因此您应该能够自己存储它们(不要忘记其他内容),并重新启动它们以重新填充历史记录列表。
这是一个黑客,但它应该工作
编辑:稍微玩一下之后,看起来你需要有8种不同的活动才能使用这种方法,这是不现实的。
答案 1 :(得分:0)
您需要执行Mobius的帖子中描述的内容,还要在android清单文件中的虚拟活动元素上设置android:taskAffinity =“”。