隱藏APP啓動圖標,網上說使用COMPONENT_ENABLED_STATE_DISABLED隱藏後不能顯示,需要使用COMPONENT_ENABLED_STATE_DISABLED_USER,我沒有出現這個情況。
LaunchActivity爲對應的禁用activity,我們把啓動圖標設置放在這個activity中,在禁用後,就看不到該圖標了,也不能通過startActivity來啓動該activity了,所以我們還需要在manifest中註冊真正的activity,這樣setComponentEnabledSetting就不會影響真正的activity的調用了。
public static void hideAppIcon(Context context) {
ComponentName componentName = new ComponentName(context, "my.package.LaunchActivity");
PackageManager packageManager = context.getPackageManager();
int state = packageManager.getComponentEnabledSetting(componentName);
if (state != PackageManager.COMPONENT_ENABLED_STATE_DISABLED) {
packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
}
}
顯示APP啓動圖標
public static void showAppIcon(Context context) {
ComponentName componentName = new ComponentName(context, "my.package.LaunchActivity");
PackageManager packageManager = context.getPackageManager();
int state = packageManager.getComponentEnabledSetting(componentName);
if (state != PackageManager.COMPONENT_ENABLED_STATE_DEFAULT) {
packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, PackageManager.DONT_KILL_APP);
}
}