1、setComponentEnabledSetting()方法
PackageManager提供了一个方法,setComponentEnabledSetting(),这个方法的作用是启用或者禁用四大组件,比如我们想禁用一个服务,就可以使用下面的方法,传入的参数就是服务的名称。
/**
* 禁用组件
* @param context 上下文
* @param className 组件类名
*/
private fun disableComponent(context: Context, className: String) {
val componentName = ComponentName(context, className)
if (isComponentDisabled(context, componentName)) return //已经禁用
context.packageManager.setComponentEnabledSetting(
componentName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP
)
}
如果想重新启用的话,也是上面的方法,只是setComponentEnabledSetting()
第二个参数值不一样,我们只需要将
PackageManager.COMPONENT_ENABLED_STATE_ENABLED
替换PackageManager.COMPONENT_ENABLED_STATE_DISABLED
即可。
/**
* 启用组件
* @param context 上下文
* @param className 组件类名
*/
private fun enable