动态隐藏App启动图标

博客介绍了APP启动图标隐藏与显示相关内容。提到网上说用COMPONENT_ENABLED_STATE_DISABLED隐藏后不能显示,需用COMPONENT_ENABLED_STATE_DISABLED_USER,但作者未遇此情况。还说明了将启动图标设置放在LaunchActivity中,禁用后图标不可见且无法启动,需在manifest中注册真正的activity。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

隐藏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);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值