11

我已经阅读了很多关于是否可以阻止 Android 应用程序启动的问题,但所有的答案似乎都是“不,你不能”。

这个想法很简单:我们希望用户能够使用预装在他的移动设备上的一组受限应用程序。如果用户尝试启动未经授权的应用程序,系统将提示他输入 PIN 码。如果他输入正确的 PIN,那么他将能够运行该应用程序。否则,应用程序将不会运行。

正如我之前所说,我能找到的所有答案都分为两类:“你不能这样做”和“你可以通过编写自己的启动器应用程序来做到这一点”。

但是,我见过 ZDBox 等应用程序,它允许您这样做。也就是说,使用 ZDBox,您可以定义“非授权”应用程序,这样如果用户尝试启动其中一个,他将需要输入 PIN 才能真正启动应用程序。如果他没有提供,应用程序将无法启动。有趣的是,ZDBox 不需要 root 访问权限来执行此操作。

所以我的问题是,我们如何防止其他应用程序启动,就像 ZDBox 一样?

4

1 回答 1

4

选项1

我见过的所有示例都涉及将您的应用程序作为启动器/主屏幕替代品运行。这就是我使用过的所有童锁式应用程序的工作方式。这个有好处

  • 按主页按钮不会离开应用程序
  • 您可以控制应用程序的启动

您可以查看 android Launcher2 代码以了解 Android 启动器的工作原理。https://android.googlesource.com/platform/packages/apps/Launcher2.git

选项 2

我确实可以看到一种替代方案。在这种情况下,您可以尝试阅读 logcat 条目,以检测何时启动列入黑名单的应用程序或将其带到前台,然后在顶部启动您的应用程序。

类似于他们如何检测应用程序启动如何检测用户何时启动另一个应用程序?(安卓)

于 2013-06-17T06:29:54.797 回答