動態隱藏App啓動圖標

隱藏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);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章