Значок запуска приложений не удаляется с главного экрана при удалении приложения android

Я использую подобные codesnippet, как показано ниже, чтобы добавить ярлык приложения на рабочем столе:

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

нет проблем с созданием ярлыка, но при удалении приложения, ярлык остается на рабочем столе. При удалении других приложений все они, похоже, также удаляют соответствующие ярлыки на рабочем столе. Это то, что я пытаюсь достичь с помощью моего "created-by-code-shortcut-icon"

любой из вас Android экспертов здесь на Stackoverflow знать, что необходимо удалить ярлык приложения с рабочего стола, когда приложение удаляется ?

Я нашел некоторые связанные темы, но они не дают мне решения для моей проблемы, но, пожалуйста, не стесняйтесь догонять:

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

[1] удалить приложение из launcher программно в Android

[2] Как удалить ярлык приложения с главного экрана при автоматическом удалении?

2 ответов


Я думаю, вы можете попробовать поместить это действие во второе намерение: "com.андроид.пусковая установка.действие.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);

надеюсь, что это помогает.


у меня была та же проблема.

наконец, я понял, что при создании ярлыка приложения намерение приложения должно содержать Intent.ACTION_MAIN действие, в противном случае ярлык не будет удален с главного экрана при удалении приложения (не намерение, используемое для установки ярлыка, который имеет com.android.launcher.action.INSTALL_SHORTCUT действие) .

надеюсь, что это помогает.