2011-06-27 5 views
11

Je pense avoir essayé toutes les solutions que j'ai trouvées sur Internet, mais personne n'a travaillé - pas de force, mais rien n'apparaît sur le bureau. Maintenant, j'ai ceci:Créer un raccourci pour n'importe quelle application sur le bureau

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

} 

Le app.getIntentShortcut() est la suivante:

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

Et dans le manifeste:

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

Qu'est-ce que je manque? Merci.

+0

Pour référence, l'édition de votre question suffit à augmenter jusqu'à à la première page à nouveau. –

+1

pouvez-vous s'il vous plaît, fournir le code source complet. – Nirav

Répondre

15

Résolu. Il suffit de changer à manifester:

ceci:

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

à ceci:

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

Juste un 'utilise' ¬¬

+0

Votre code semble produire un raccourci sur le bureau sur l'exécution du programme! Y at-il un moyen par lequel je peux créer une icône de bureau sur l'installation de l'application avant de l'exécuter. –

+0

Non, vous ne pouvez pas parce que le code java doit être dans l'activité principale qui est exécutée lorsque vous lancez l'application –

Questions connexes