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等过滤