¿Cómo puedo agregar el acceso directo de mi aplicación a la pantalla de inicio al instalar la aplicación?

Quiero crear el icono de acceso directo de mi aplicación en la pantalla de inicio tan pronto como instale mi aplicación (incluso antes de iniciarla). ¿Es eso posible? ¿Cómo podría hacer eso?

6 Solutions collect form web for “¿Cómo puedo agregar el acceso directo de mi aplicación a la pantalla de inicio al instalar la aplicación?”

Por lo que sé, una aplicación no puede obligarse a sí mismo en la pantalla de inicio. Se agrega a la lista de aplicaciones que mantiene la aplicación de lanzador, pero la pantalla de inicio está generalmente bajo control de usuario. Dar a las aplicaciones la capacidad de desordenar la pantalla de inicio sería una invitación abierta para el abuso.

NOTA: Esta respuesta ahora es incorrecta. Véase, por ejemplo, la respuesta de Robin para una manera de hacer esto. Quisiera borrar esto, pero no me dejo porque es la respuesta aceptada. 🙁

Desde ICS, puedes hacer esto:

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); } 

Consulte también el código fuente del lanzador en: este enlace

Editar: Si alguien se pierda el comentario de lectura para agregar la siguiente línea.

Esto requiere permiso "com.android.launcher.permission.INSTALL_SHORTCUT"

Has olvidado agregar permisos:

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

Gran tutorial aquí: http://androidforbegineers.blogspot.in/2014/01/android-home-screen-shortcut.html# !

¡Si instala su aplicación, ni su aplicación, ni ningún otro servicio u otro proceso están activos! Android quiere que el usuario haga el primer paso para "abrir" la aplicación. ¡No puedes instalar un acceso directo directamente ! Esa es la respuesta. Aviso: en la mayoría de los dispositivos, el lanzador creará un acceso directo para su aplicación.

¿Puede instalar accesos directos en tiempo de ejecución después de que el usuario haya iniciado su aplicación al menos una vez? : (véase la respuesta de Robins).

¿Hay alguna solución? Tal vez, pero no una buena.

Actualización , Otra pista: Si ya tiene una aplicación en el dispositivo del usuario. (Por ejemplo, si la segunda aplicación que se instala es la clave para "ir pro" o algo), entonces realmente puede iniciar la segunda aplicación de la primera, sin que el usuario ha iniciado la segunda aplicación nunca (y agregar un acceso directo) .

  1. Crear función para llamar a la intención de acceso directo:

     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. Escribir en OnCreat la llamada de la función:

     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. Establezca los permisos en manifesto:

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

Primero, agregue el permiso para agregar acceso directo a manifiesto:

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

Luego, llame a la función de abajo.

 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); } 
  • El botón "Añadir a la pantalla de inicio" de Android no muestra el sitio web como una aplicación web
  • ImageButton en el widget de pantalla de inicio de Android
  • Comprueba si la aplicación web se agrega a la pantalla de inicio en Android
  • El fondo de pantalla de Android también se desliza hacia la izquierda y la derecha cuando desliza la pantalla de inicio
  • Android: Widgets que no se muestran en el cajón de aplicaciones ICS
  • ¿Cómo puedes depurar "agregar a la pantalla de inicio" en Chrome en android?
  • ¿Cómo iniciar una actividad en segundo plano y mostrarla después?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.