我已经读过很多关于是否可以防止
Android应用程序启动的问题,但是所有的答案似乎都是“不,你不能”.
这个想法很简单:我们希望用户能够使用一组预先安装在他的移动设备上的应用程序.如果用户尝试启动未授权的应用程序,系统将提示您输入PIN码.如果他输入正确的PIN码,他将能够运行应用程序.否则,应用程序将不会运行.
正如我之前所说,我可以找到的所有答案分为两类:“你不能这样做”,“你可以通过写自己的发射器应用程序”来做到这一点.
但是,我已经看到像ZDBox这样的应用程序,这样你就可以做到这一点.也就是说,使用ZDBox,您可以定义“非授权”应用程序,如果用户尝试启动其中一个应用程序,他将需要输入PIN才能实际启动应用程序.如果他没有提供,应用程序将不会启动.有趣的是,ZDBox不需要root访问权限来执行此操作.
所以我的问题是,如何阻止其他应用程序的启动,就像ZDBox一样?
解决方法
选项1
我看到的所有例子都涉及到运行您的应用程序作为启动器/主屏幕更换.这是我使用过的所有子锁定样式应用程序的工作原理.这具有优势
按住Home按钮不会离开应用程序
>您可以控制应用启动
您可以查看Android Launcher2代码,了解Android启动器的工作原理. https://android.googlesource.com/platform/packages/apps/Launcher2.git
选项2
看起来是一个可以看到的替代方案.在这种情况下,您可以尝试读取logcat条目以检测何时启动黑名单应用程序或将其引导到前台,然后在顶部启动应用程序.
类似于他们如何在How to detect when the user launches another app? (Android)发现应用程序