Значок запуска приложений не удаляется с главного экрана при удалении приложения 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 знать, что необходимо удалить ярлык приложения с рабочего стола, когда приложение удаляется ?
Я нашел некоторые связанные темы, но они не дают мне решения для моей проблемы, но, пожалуйста, не стесняйтесь догонять:
[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
действие) .
надеюсь, что это помогает.