Activity Alias 动态改变Launcher Icon - litonghui/TechBlog GitHub Wiki
有没有遇到过需要改变桌面快捷方式需求,比如购物软件会根据活动会修改launcher Icon,6.18 、双11、双12 等等。修改Icon方法有很多种,可以通过ACTION_ADD_SHORT 重建的方式修改Launcher Icon ,当然还有一种 Activity Alia 方式,具体如下所示。
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity-alias
android:name=".MainAliasActivity"
android:targetActivity=".MainActivity"
android:label="@string/app_name"
android:icon="@mipmap/ic_like"
android:enabled="false">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity-alias>
1. android.intent.action.MAIN 和 android.intent.category.LAUNCHER是ICON 点击主程序的入口,不需在正常Activity 和 Activity Alias同时声明。
PackageManager pkm = getPackageManager();
pkm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED
, PackageManager.DONT_KILL_APP);
pkm.setComponentEnabledSetting(new ComponentName(this, "com.lth.dometest.MainAliasActivity"), PackageManager.COMPONENT_ENABLED_STATE_ENABLED
, PackageManager.DONT_KILL_APP);