¿Cómo cambiar el icono y la etiqueta de una aplicación una vez instalada?

Estoy intentando cambiar el icono y la etiqueta de mi aplicación una vez que está instalada.

En el manifiesto, pongo este código:

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/MyTheme" >
// 1st Activity declaration
<activity
    android:name=".activities.SplashScreenActivity"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:screenOrientation="portrait"
    android:theme="@style/Theme.Sherlock.NoActionBar" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        // I removed the next line to put it with the alias :
        // <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

// Activity Aliases
<activity-alias
    android:name=".Alias_0"
    android:enabled="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:targetActivity=".activities.SplashScreenActivity" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity-alias>
<activity-alias
    android:name=".Alias_1"
    android:enabled="false"
    android:icon="@drawable/alias1"
    android:label="@string/alias1"
    android:targetActivity=".activities.SplashScreenActivity" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

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

Y en un PreferenceActivity, estoy habilitando / deshabilitando alias como este:

packageManager.setComponentEnabledSetting(
        new ComponentName("com.mypackage", "com.mypackage.Alias_0"),
        PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
        PackageManager.DONT_KILL_APP);

packageManager.setComponentEnabledSetting(
        new ComponentName("com.mypackage", "com.mypackage.Alias_1"),
        PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
        PackageManager.DONT_KILL_APP);

Siempre hay un solo alias activado.

Una vez que se cambia esto, puedo ver en el iniciador de aplicaciones que el ícono / etiqueta de la aplicación anterior ha desaparecido y en algunos dispositivos, algunas veces (puede durar mucho tiempo) que el iniciador muestre el activado. Durante este tiempo, no hay forma de iniciar la aplicación ya que no hay un icono.

¿Hay alguna manera de actualizar el lanzador programáticamente?

Además, he intentado crear un acceso directo después de la activación / desactivación de los alias. Funciona bien, pero si trato de mover el acceso directo, una vez que suelte el acceso directo a su nueva posición, el lanzador de Android se bloquea. Aquí está el código que estoy usando:

Intent shortcutIntent = new Intent(getApplicationContext(), SplashScreenActivity.class);
shortcutIntent.setAction(Intent.ACTION_MAIN);

Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, shortcutTitle);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(getApplicationContext(), shortcutDrawableId));
addIntent.putExtra("duplicate", false);

addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
sendBroadcast(addIntent);

Me estoy perdiendo de algo ?

EDITAR : Para ser claros, no estoy buscando cambiar el nombre de mi aplicación ANTES de instalarla. Quiero hacerlo una vez que la aplicación esté instalada en mi teléfono.

Quiero darles la oportunidad a los usuarios de tener otro icono / etiqueta una vez que hayan instalado mi aplicación. Si no activan esa opción, deben tener el icono / etiqueta original.

Tampoco estoy buscando cambiar el nombre de la aplicación con una actualización.

Respuestas a la pregunta(3)

Su respuesta a la pregunta