天天看点

配置activity-alias别名,更改app图标和名字

1、通过配置activity-alias别名,将多个别名指向同一个Activity,该Activity是包含了android.intent.action.MAIN和android.intent.category.LAUNCHER的。

2、在AndroidManifest.xml文件中,把其他的activity-alias设置为 android:enabled=”true”,并设置不同的label和icon。

3、在代码中可以设置哪些Activity或者activity-alias是否可用。

主要部分代码如下:

<activity android:configChanges=”locale|keyboard|keyboardHidden|orientation|screenLayout|screenSize” android:excludeFromRecents=”true” android:exported=”true” android:hardwareAccelerated=”true” android:icon=”@drawable/transparent” android:label=”@string/appname_supersu” android:launchMode=”singleTask” android:name=”.MainActivity” android:noHistory=”false” android:theme=”@android:style/Theme.Translucent”>

<intent-filter>

<action android:name=”android.intent.action.MAIN”/>

</intent-filter>

</activity>

<activity-alias android:enabled=”true” android:icon=”@drawable/ic_launcher_emblem” android:label=”@string/appname_supersu” android:name=”.MainActivity-Emblem” android:targetActivity=”.MainActivity”>

<intent-filter>

<action android:name=”android.intent.action.MAIN”/>

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

</intent-filter>

</activity-alias>

<activity-alias android:enabled=”false” android:icon=”@drawable/ic_launcher_superandy” android:label=”@string/appname_supersu” android:name=”.MainActivity-SuperAndy” android:targetActivity=”.MainActivity”>

<intent-filter>

<action android:name=”android.intent.action.MAIN”/>

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

</intent-filter>

</activity-alias>

##JAVA代码

Context ctx = getApplicationContext();

ActivityManager am = (ActivityManager) ctx

.getSystemService(Activity.ACTIVITY_SERVICE);

System.out.println(getComponentName());

if (“com.ilovn.app.pictureprocess.TestAlias”.equals(getComponentName()

.getClassName())) {

pm.setComponentEnabledSetting(getComponentName(),

PackageManager.COMPONENT_ENABLED_STATE_DISABLED,

PackageManager.DONT_KILL_APP);

pm.setComponentEnabledSetting(new ComponentName(getBaseContext(),

“com.ilovn.app.pictureprocess.SplashActivity”),

PackageManager.COMPONENT_ENABLED_STATE_ENABLED,

PackageManager.DONT_KILL_APP);

} else {

pm.setComponentEnabledSetting(getComponentName(),

PackageManager.COMPONENT_ENABLED_STATE_DISABLED,

PackageManager.DONT_KILL_APP);

pm.setComponentEnabledSetting(new ComponentName(getBaseContext(),

“com.ilovn.app.pictureprocess.TestAlias”),

PackageManager.COMPONENT_ENABLED_STATE_ENABLED,

PackageManager.DONT_KILL_APP);

}

转载自:点击打开链接