2011-06-27 25 views
11

Creo que he intentado todas las soluciones que encontré en Internet, pero nadie trabajó -no se forzó el cierre, pero no aparece nada en el escritorio-. Ahora, tengo esto:Crear un acceso directo para cualquier aplicación en el escritorio

private void createShortcutOnDesktop(Application app) { 

    Intent shortcutIntent = new Intent(); 
    shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, app.getIntentShortcut()); 
    shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, app.getName()); 
    shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(context, R.drawable.home_button)); 
    shortcutIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
    this.sendBroadcast(shortcutIntent); 
    finish(); 

} 

El app.getIntentShortcut() es la siguiente:

public Intent getIntentShortcut() 
{  

    Intent i = new Intent(); 
    i.setClassName(packageName, name); 
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

    return i; 
} 

Y en el manifiesto:

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

¿Qué me falta? Gracias.

+0

Como referencia, la edición de su pregunta es suficiente para volcar hacia arriba a la página principal de nuevo. –

+1

puede, por favor, proporcionar el código fuente completo. – Nirav

Respuesta

15

Resuelto. Sólo cambia al manifiesta:

esto:

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

a esto:

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

sólo un 'usos' ¬¬

+0

¡Su código parece producir un atajo de escritorio en la ejecución del programa! ¿Hay alguna manera de crear un icono de escritorio en la instalación de la aplicación antes de ejecutarla? –

+0

No, no puede porque el código de Java debe estar dentro de la actividad principal que se ejecuta cuando inicia la aplicación –

Cuestiones relacionadas