Как я могу добавить ярлык моего приложения на рабочий стол при установке приложения?

Я хочу создать ярлык / значок запуска приложения на рабочем столе, как только я установлю свое приложение (даже до того, как я его запустил). Это возможно? Как я могу это сделать?

Solutions Collecting From Web of "Как я могу добавить ярлык моего приложения на рабочий стол при установке приложения?"

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

ПРИМЕЧАНИЕ. Этот ответ теперь неверен. См., Например, ответ Робин за способ сделать это. Я бы удалил это, но SO не позволит мне, потому что это принятый ответ. 🙁

Поскольку ICS, вы можете сделать вот так:

public void createShortCut(){ Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); shortcutintent.putExtra("duplicate", false); shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.shortcutname)); Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.icon); shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon); shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(getApplicationContext(), EnterActivity.class)); sendBroadcast(shortcutintent); } 

Также обращайтесь к исходному коду запуска: по этой ссылке

Изменить: если кто-то пропустит прочтение комментария, добавив следующую строку.

Для этого требуется разрешение "com.android.launcher.permission.INSTALL_SHORTCUT"

Вы забыли добавить разрешения:

  <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" /> 

Большой учебник здесь: http://androidforbegineers.blogspot.in/2014/01/android-home-screen-shortcut.html# !

Если вы устанавливаете приложение, ни ваше приложение, ни какие-либо службы или другие процессы не активны! Android хочет, чтобы пользователь сделал первый шаг в «открытии» приложения. Вы не можете напрямую установить ярлык! Это ответ. Примечание. На большинстве устройств пусковая установка создаст ярлык для самого приложения.

Можете ли вы установить ярлыки во время выполнения после того, как пользователь каким-то образом запустил приложение хотя бы один раз? : Да (см. Ответ Робинса).

Есть ли обходной путь? Может быть, но ничего хорошего.

Обновление , Еще один совет: если у вас уже есть приложение на устройстве пользователя. (Например, если ваше второе приложение, которое устанавливается, является ключом для «идущего профессионала» или чего-то еще), тогда вы действительно можете запустить второе приложение из первого, без запуска пользователем второго приложения (и добавления ярлыка) ,

  1. Создать функцию для вызова намерения ярлыка:

     private void criarAtalho() { Intent shortcutIntent = new Intent(getApplicationContext(), SplashScreen.class); shortcutIntent.setAction(Intent.ACTION_MAIN); Intent addIntent = new Intent(); addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "nomeDaApp"); addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.mipmap.ic_launcher)); addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); addIntent.putExtra("duplicate", false); //may it's already there so don't duplicate getApplicationContext().sendBroadcast(addIntent); } 
  2. Писать на OnCreat вызов функции:

     if(!getSharedPreferences("APP_PREFERENCE", Activity.MODE_PRIVATE).getBoolean("IS_ICON_CREATED", false)){ criarAtalho(); getSharedPreferences("APP_PREFERENCE", Activity.MODE_PRIVATE).edit().putBoolean("IS_ICON_CREATED", true).commit(); } 
  3. Установить разрешения для манифеста:

     <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> 

Во-первых, добавьте разрешение на добавление ярлыка в манифест:

 <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> 

Затем вызовите функцию ниже.

 public void createShortcut(){ Intent intentShortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); intentShortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name)); Parcelable appicon = Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.ic_launcher); intentShortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, appicon); intentShortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(getApplicationContext(), MainActivity.class)); intentShortcut.putExtra("duplicate", false); sendBroadcast(intentShortcut); }