Android隐藏Icon,条件启动显示icon

本文介绍了在Android中如何隐藏应用图标,包括在Manifest中使用隐式启动和通过代码方式实现。同时,讨论了如何在特定条件下动态显示图标。

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

隐藏Icon有3种方式,在Manifest中注册Activity时改为隐式启动Icon不会显示,但不会动态显示

<intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

                <!-- <data
                    android:host="MainActivity"
                    android:scheme="com.android.exmple" /> -->
            </intent-filter>

第一种:隐式

<category android:name="android.intent.category.DEFAULT" /> 
也可以去掉Launch 但程序没有入口不能正常启动

第二种:也可以用代码方式隐藏

PackageManager p1 = getPackageManager();
			p1.setComponentEnabledSetting(getComponentName(),
					PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
					PackageManager.DONT_KILL_APP);

一样隐藏后程序就没法启动
第三种:在intent-file中设置data属性,这种貌似可以条件启动,但是一直没研究出来 委屈


最后解决方案:
设置两个主acitivy一个为程序外壳,一个为主要activity
Manifest配置:
<activity
            android:name="com.foo.testapp.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.DEFAULT" />

            </intent-filter>
        </activity>
        <activity
            android:name="com.foo.testapp.TestActivity"
            android:icon="@drawable/ic_launcher"
            android:label="App" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

主要activity,<category>属性设为隐式即DEFAULT,外壳activity设为程序入口
外壳activity启动后跳到主要的acitivy
PackageManager p1 = getPackageManager();
			p1.setComponentEnabledSetting(getComponentName(),
					PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
					PackageManager.DONT_KILL_APP); 


主acitivy中条件判断Icon是否隐藏了

显示Icon:
PackageManager p1 = getPackageManager();
			p1.setComponentEnabledSetting(getComponentName(),
					PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
					PackageManager.DONT_KILL_APP);

 隐藏Icon:

PackageManager p1 = getPackageManager();
			p1.setComponentEnabledSetting(getComponentName(),
					PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
					PackageManager.DONT_KILL_APP); 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值