adb Android禁用四大组件

ComponentName name = new ComponentName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name);
			pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

不可用状态:COMPONENT_ENABLED_STATE_DISABLED
可用状态:COMPONENT_ENABLED_STATE_ENABLED
默认状态:COMPONENT_ENABLED_STATE_DEFAULT
flags:行为标签,值可以是DONT_KILL_APP或者0。 0说明杀死包含该组件的app

ComponentName 可以是包名类名

adb 手动设置:
adb shell pm enable 包名/类名

例如:adb shell pm enable com.vincent.test/.MainActivity

	   pm clear [--user USER_ID] PACKAGE
       pm enable [--user USER_ID] PACKAGE_OR_COMPONENT
       pm disable [--user USER_ID] PACKAGE_OR_COMPONENT
       pm disable-user [--user USER_ID] PACKAGE_OR_COMPONENT
       pm disable-until-used [--user USER_ID] PACKAGE_OR_COMPONENT
       pm hide [--user USER_ID] PACKAGE_OR_COMPONENT
       pm unhide [--user USER_ID] PACKAGE_OR_COMPONENT

包名类名获取:

       //获取其他app的servcie
       List<ResolveInfo> infos2 = pm.queryIntentServices(intent2, 0);
		
		//获取其他app的广播
       List<ResolveInfo> infos3 = pm.queryBroadcastReceivers(intent2, 0);
       
       //获取其他app的Activity
      List<ResolveInfo> infos2 = pm.queryIntentActivities(intent2, 0);

		//获取其他app的ContentProvider
       List<ResolveInfo> infos3 = pm.queryContentProviders(intent2, 0);

其中intent2 里面可以设置 action\packageName等过滤

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...