卸载Android应用程序时,不会从主屏幕删除应用程序启动器图标

时间:2010-07-26 22:13:00

标签: android icons uninstall

我正在使用类似的codenippet,如下所示在主屏幕上添加应用程序快捷方式:

    Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
    shortcutIntent.setClassName(this, this.getClass().getName());
    shortcutIntent.putExtra(EXTRA_KEY, "ApiDemos Provided This Shortcut");

    // Then, set up the container intent (the response to the caller)

    Intent intent = new Intent();
    intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
    intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.shortcut_name));
    Parcelable iconResource = Intent.ShortcutIconResource.fromContext(
            this,  R.drawable.app_sample_code);
    intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource);

    // Now, return the result to the launcher

    setResult(RESULT_OK, intent);

创建快捷方式没有问题,但在卸载应用程序时,快捷方式仍保留在主屏幕上。卸载其他应用程序时,他们似乎也删除了相应的主屏幕快捷方式。这是我尝试使用我的“由代码创建快捷方式图标”

来实现的

Stackoverflow上的任何Android专家是否知道在卸载应用时从主屏幕删除应用快捷方式需要什么?

我发现了一些相关的主题,但他们没有为我提供解决方案,但请随时赶上:

[0] https://developer.android.com/intl/de/resources/samples/ApiDemos/src/com/example/android/apis/app/LauncherShortcuts.html

[1] Remove application from launcher programatically in Android

[2] How to remove application shortcut from home screen on uninstall automatically?

2 个答案:

答案 0 :(得分:4)

我认为您可以尝试将此操作放在第二个Intent中:“com.android.launcher.action.INSTALL_SHORTCUT”

这对我有用,启动器图标安装在主屏幕上,当我卸载应用程序时,图标被删除。一直在苦苦挣扎。

Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
shortcutIntent.setClassName(this, this.getClass().getName());

Intent intent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));
Parcelable iconResource = Intent.ShortcutIconResource.fromContext(
            this,  R.drawable.launcher_icon);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource);
sendBroadcast(intent);

希望这有帮助。

答案 1 :(得分:2)

我也有同样的问题。

最后,我发现在创建应用程序的快捷方式时,应用程序的意图必须包含Intent.ACTION_MAIN操作,否则在卸载应用程序时不会从主屏幕中删除快捷方式(而不是使用的意图)用于安装具有com.android.launcher.action.INSTALL_SHORTCUT操作的快捷方式。

希望它有所帮助。