Устанавливать значок запуска на главном экране один раз

Когда пользователь устанавливает приложение для Android, в меню приложений создается значок запуска. Многие пользователи, с которыми я говорю, ожидают, что при установке приложения значок должен появиться автоматически на главном экране («стартовая панель»).

Многие приложения так или иначе достигают этого. Мое предпочтение заключалось бы в том, чтобы окно появилось при установке, спрашивая пользователя: «Вы хотите добавить ярлык?» Если это невозможно, любой код, который автоматически добавляет ярлык, будет делать.

Android дает кучу кода здесь: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LauncherShortcuts.html. Предполагается, что добавление этого кода (и связанного с ним Xml) на ваш проект будет делать трюк. Но это не так, как я хочу. Кажется, что представленный код является пассивным, и мне нужно каким-то образом вызвать его.

Поэтому мой вопрос:

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

PS: Усложняющим фактором является то, что я создаю свое приложение с помощью PhoneGap, что означает, что основной деятельностью является не «Активность», а «DroidGap».

Solutions Collecting From Web of "Устанавливать значок запуска на главном экране один раз"

В этом примере он возвращает intent в setResult(...) . Я считаю, что вам нужно запустить sendBroadcast(intent) чтобы запустить установку ярлыка.

  Intent shortcutIntent = new Intent(getApplicationContext(), HomeScreen.class); shortcutIntent.setAction(Intent.ACTION_MAIN); Intent addIntent = new Intent(); addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "AIMS ICD"); addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.aims)); addIntent.putExtra("duplicate", false); addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); getApplicationContext().sendBroadcast(addIntent); 

Класс DroidGap расширяет Activity, поэтому вы можете просто добавить код из указанной вами ссылки, чтобы добавить ярлык.