Как добавить ярлык приложения на главный экран

Я знаю, что это не задокументировано и не будет работать на всех устройствах, но я вижу, что все больше и больше приложений размещают свои ярлыки на главном экране после их установки. Нашел кучу фрагментов кода, как это сделать, но для меня они не подходят друг другу. Это то, что у меня есть.

  1. Требуется разрешение в манифесте.

     
     
  2. Создайте намерение действия, которое должно быть вызвано. Пример (из cgeek):

     Intent shortcutIntent = new Intent ();
    shortcutIntent.setClassName ("com.example.androidapp", "SampleIntent");
    shortcutIntent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK);
    shortcutIntent.addFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP);
     
  3. Создать ярлык

     Intent addIntent = new Intent ();
    addIntent.putExtra (Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
    addIntent.putExtra (Intent.EXTRA_SHORTCUT_NAME, "Имя ярлыка");
    addIntent.putExtra (Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext (context, R.drawable.icon));
    addIntent.setAction ("com.android.launcher.action.INSTALL_SHORTCUT");
    context.sendBroadcast (addIntent);
     

Мои вопросы: Куда должен идти этот код, чтобы ярлык был добавлен после установки .apk? Я пробовал этот код в программе запуска, он создает неработающий (другая история) ярлык при каждом запуске приложения.

20
задан laalto 2 August 2013 в 09:07
поделиться