Установите значок запуска на главном экране один раз - PullRequest
11 голосов
/ 26 февраля 2012

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

Многие приложения так или иначе достигают этого. Я бы предпочел, чтобы при установке появилось окно с вопросом "Хотите ли вы добавить ярлык?" Если это невозможно, подойдет любой код, который автоматически добавляет ярлык.

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

Итак, мой вопрос:

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

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

Ответы [ 3 ]

4 голосов
/ 24 января 2013
    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);
1 голос
/ 27 февраля 2012

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

0 голосов
/ 27 февраля 2012

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

...