2010-07-10 15 views
12

Hola, soy nuevo en esta programación para Android.Cómo agregar accesos directos a aplicaciones programáticamente en android

Necesito agregar mi aplicación a la pantalla de inicio como acceso directo programático.

Por favor, den la idea de eso. Si es posible, dígame cómo administrar los accesos directos existentes (eliminar y agregar algunos accesos directos)

+0

no creo que los apis exponen a esa funcionalidad. Obtienes un icono de aplicación en el cuadro de diálogo desplegable de forma predeterminada. –

Respuesta

9

He leído un artículo que puede ayudarlo a agregar accesos directos a la aplicación mediante programación en la pantalla de inicio.

Puede consultar el example.

También puede consultar la pregunta de stackoverflow relacionada con el atajo here.

+0

puede haber otros enlaces que lo mencionan, como este: http://code.google.com/p/apps-for-android/source/browse/#git%2FAnyCut y esto: https: // groups. google.com/forum/?fromgroups=#!topic/android-developers/B9n6PjtTKic –

5

llama a este método en el método de su primera pantalla onCreate(). También asegúrese de para comprobar que la aplicación se está ejecutando por primera vez el uso de SharedPreferences como si hicieron:

private void addShortcut() { 
    //Adding shortcut for MainActivity on Home screen 
    Intent shortcutIntent = new Intent(getApplicationContext(),MainActivity.class); 

    shortcutIntent.setAction(Intent.ACTION_MAIN); 

    Intent addIntent = new Intent(); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, this.getResources().getString(R.string.app_name)); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,Intent.ShortcutIconResource.fromContext(getApplicationContext(), 
         R.drawable.ic_launcher)); 

    addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
    getApplicationContext().sendBroadcast(addIntent); 
} 

    // TO check app is installed first time. 
    SharedPreferences prefs = getSharedPreferences("ShortCutPrefs", MODE_PRIVATE); 
    if(!prefs.getBoolean("isFirstTime", false)){ 
     addShortcut(); 
     SharedPreferences.Editor editor = prefs.edit(); 
     editor.putBoolean("isFirstTime", true); 
     editor.commit(); 
    } 
4

he pasado un montón de tiempo en probar diferentes soluciones de stackoverflow, pero la mayoría de ellos son inútiles, porque están comenzando nuevas instancias de actividad. Necesito un acceso directo que funcione exactamente como el que está en la lista de aplicaciones o el que se instala automáticamente en Google Play (inicie la actividad o lleve la Actividad ya iniciada al frente).

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     //Save the flag to SharedPreferences to prevent duplicated shortcuts 
     if (!settings.isShortcutAdded()) { 
      addShortcut(); 
      settings.setShortcutAdded(true); 
     } 
    } 

    private void addShortcut() { 
     Intent shortcutIntent = new Intent(getApplicationContext(), MainActivity.class); 
     shortcutIntent.setAction(Intent.ACTION_MAIN); 
     shortcutIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
     int flags = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT; 
     shortcutIntent.addFlags(flags); 

     Intent addIntent = new Intent(); 
     addIntent.putExtra("duplicate", false); 
     addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
     addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getResources().getString(R.string.app_name)); 
     addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource 
       .fromContext(getApplicationContext(), R.drawable.ic_launcher)); 
     addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
     getApplicationContext().sendBroadcast(addIntent); 
    } 

Y no se olvide de actualizar su manifiesto:

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

¿podemos hacer esto a través de javascript? ¿idea de hormiga? –

Cuestiones relacionadas