从系统层禁用app

首先说禁用app系统自己有方法:packageManager.setApplicationEnabledSetting(packageName, newState, flags);这个方法是设置里面禁用app用的方法,禁用后,在launcher界面是不显示app图标的,我们的需求是从系统层禁用app,launcher也要显示app图标,点击后提示“此应用被禁用”。好了,思路是从activity启动流程里面判断,新启动的activity如果包名和我们想要禁用的app的包名一致,就不启动activity。下面是我看的activity启动流程的文章:http://blog.csdn.net/luoshengyang/article/details/6689748

从系统层禁用app_第1张图片

上面图片是我修改的地方,判断包名如果是“com.android.settings”就return 并发广播,在此处直接dialog或者Toast的话会报错,因为此处是在子线程中执行的,所以l利用发广播的方式,外面可以注册静态广播来diaolg提示或者自己的操作

你可能感兴趣的:(从系统层禁用app)