Как изменить значок и метку приложения после его установки?
Я пытаюсь изменить значок и метку моего приложения после его установки.
В манифесте я положил этот код:
<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>
А в PreferenceActivity я включаю / отключаю псевдонимы следующим образом:
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);
Всегда есть только один активированный псевдоним.
После того, как это изменилось, я вижу на панели запуска приложений, что значок / метка старого приложения исчезли, а на некоторых устройствах требуется несколько раз (это может длиться очень долго) для запуска активатора. В течение этого времени невозможно запустить приложение, так как значок отсутствует.
Есть ли способ обновить программу запуска программно?
Кроме того, я попытался создать ярлык после активации / деактивации псевдонимов. Он работает нормально, но если я попытаюсь переместить ярлык вокруг, как только я отпущу ярлык в его новое положение, запускается Android-пусковая установка. Вот код, который я использую:
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);
Я что-то пропустил ?
РЕДАКТИРОВАТЬ Просто для ясности, я не собираюсь менять название своего приложения ДО его установки. Я хочу сделать это, как только приложение установлено на моем телефоне.
Я хочу дать пользователям возможность иметь еще один значок / ярлык после установки моего приложения. Если они не активируют эту опцию, они должны иметь оригинальный значок / ярлык.
Я также не смотрю, чтобы изменить название приложения с обновлением.