防止用户在安卓系统上关闭应用程序

5
我正在尝试找出如何防止用户使用强制停止功能关闭应用程序。我正在尝试检测当用户打开类似设置-应用程序-管理应用程序的活动并尝试强制停止受保护的应用程序时。还有一些任务管理器应用程序可以让您杀死进程。
我知道在Android中是可能的,因为像AppLock或Super AppLock这样的应用程序可以做到。但我找不到任何关于如何做到这一点的信息。
现在我正在尝试轮询ActivityManager.RunningTaskInfo来检测受限制的活动,但是由于它们在不同设备上具有不同的名称,所以效果不佳。
有更好的方法吗?AppLock和类似的应用程序如何实现此功能?

我认为只有系统应用程序才被允许阻止那个。即,随着ROM安装。 - Anders Metnik
AppLock或Super AppLock,它们可以在非root设备上工作吗?你试过它们吗?另一个可能的提示是你的应用程序是DeviceAdmin。http://developer.android.com/guide/topics/admin/device-admin.html - Maxim
我在我的手机上(标准非root)尝试了Super AppLock,它运行良好。当我尝试访问任务管理器应用程序或通过设置/管理应用程序强制停止应用程序时,会出现一个屏幕要求我输入解锁代码。 - Alex Gdalevich
2个回答

2

1

我想我找到了解决方法。

使用ActivityManager.getRunningTasks()函数似乎是最好的解决方案。 然后,每次顶部任务为“com.android.settings.applications.RunningServiceDetails”或“com.android.settings.applications.InstalledAppDetails”时,您只需要弹出一个带有PIN码的活动。

不幸的是,没有办法知道用户是否试图终止受保护的应用程序还是其他应用程序,因此访问被限制为所有应用程序。

市场上还有一堆任务管理器使用ActivityManager.killBackgroundProcesses()方法来杀死进程,但您可以通过使用闹钟将应用程序恢复到活动状态。


这是否意味着您需要不断使用 ActivityManager.getRunningTasks() 进行轮询?这会带来很大的开销吗?我也非常好奇所有这些应用锁定类型的应用程序是如何做到的,特别是因为您不能再读取其他应用程序的 LogCat。 - Tony Chan

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