我已经阅读了许多关于是否可以阻止Android应用程序启动的问题,但所有答案似乎都是“不,你不能”。
这个想法非常简单:我们希望用户能够使用将在其移动设备上预先安装的重新设定的应用程序集。如果用户尝试启动未授权的应用程序,系统将提示他输入要求输入PIN的对话框。如果他输入正确的PIN,那么他将能够运行该应用程序。否则,将不会运行该应用程序。
正如我之前所说,我可以找到的所有答案分为两类:“你不能那样做”和“你可以通过编写自己的启动器应用程序来做到这一点。”
但是,我已经看过ZDBox这样的应用程序,它们允许你这样做。也就是说,使用ZDBox,您可以定义“非授权”应用程序,如果用户尝试启动其中一个,他将需要输入PIN才能实际启动应用程序。如果他没有提供,应用程序将无法启动。有趣的是,ZDBox不需要root访问权来执行此操作。
所以我的问题是,我们如何阻止其他应用启动,就像ZDBox一样?
答案 0 :(得分:3)
选项1
我见过的所有示例都涉及将您的应用作为启动器/主屏幕替代品运行。这就是我使用的所有儿童锁风格应用程序的工作方式。这有优势
您可以查看Android Launcher2代码,了解Android启动器的工作原理。 https://android.googlesource.com/platform/packages/apps/Launcher2.git
选项2
我确实可以看到一种替代方案。您可以尝试阅读logcat条目,以检测黑名单应用程序何时启动或带到前台,然后在顶部启动您的应用程序。
与他们在How to detect when the user launches another app? (Android)
中检测应用启动的方式类似