gpt4 book ai didi

android - 安装后如何更改应用程序的图标和标签?

转载 作者:太空宇宙 更新时间:2023-11-03 11:14:52 25 4
gpt4 key购买 nike

我正在尝试在安装后更改我的应用程序的图标和标签。

在 list 中,我放了这段代码:

<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);

我错过了什么吗?

编辑:明确地说,我不想在安装应用程序之前更改它的名称。我想在我的手机上安装该应用程序后执行此操作。

我想让用户有机会在安装我的应用程序后拥有另一个图标/标签。如果他们不激活该选项,他们应该拥有原始图标/标签。

我也不打算通过更新更改应用程序的名称。

最佳答案

问题中发布的代码显然是正确的方法。Android 4.1 和 4.2 存在问题。在此处查找更多详细信息:

https://code.google.com/p/android/issues/detail?id=54546

关于android - 安装后如何更改应用程序的图标和标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18004230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com