Je veux créer l'icône de raccourci/launcher de mon application sur l'écran d'accueil dès l'installation de mon application (avant même de la démarrer). Est-ce possible? Comment pourrais-je faire ça?
NOTE: Cette réponse est maintenant fausse. Voir, par exemple, la réponse de Robin pour savoir comment procéder.
Autant que je sache, une application ne peut pas se forcer sur l'écran d'accueil. Il est ajouté à la liste des applications gérées par l'application de lancement, mais l'écran d'accueil est généralement sous le contrôle de l'utilisateur. Donner aux applications la possibilité d'encombrer l'écran d'accueil serait une invitation ouverte aux abus.
Depuis ICS, vous pouvez faire comme ça:
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);
}
Veuillez également vous reporter au code source du lanceur à l’adresse: ce lien
Edit: Si quelqu'un manque de lire le commentaire, ajoutez la ligne suivante.
Cela nécessite l'autorisation "com.Android.launcher.permission.INSTALL_SHORTCUT"
Vous avez oublié d'ajouter des autorisations:
<uses-permission
Android:name="com.Android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission
Android:name="com.Android.launcher.permission.UNINSTALL_SHORTCUT" />
Grand tutoriel ici: http://androidforbegineers.blogspot.in/2014/01/Android-home-screen-shortcut.html# !
Si vous installez votre application, ni votre application, ni aucun service ou autre processus ne sont actifs! Android veut que l'utilisateur fasse le premier pas pour "ouvrir" l'application. Vous ne pouvez pas installer un raccourci directement! Thats la réponse. Remarque: sur la plupart des appareils, le programme de lancement créera un raccourci pour votre application elle-même.
Pouvez-vous installer des raccourcis au moment de l'exécution après que l'utilisateur ait démarré votre application au moins une fois? : oui (voir la réponse de Robins).
Y at-il un travail autour? Peut-être, mais pas bon.
Mise à jour , Autre astuce: Si vous avez déjà une application sur le périphérique de l'utilisateur. (Par exemple, si votre deuxième application installée est la clé pour "devenir pro" ou autre chose), vous pouvez alors démarrer la deuxième application à partir de la première, sans que l'utilisateur n'ait démarré la deuxième application (et ajouter un raccourci) .
Créer une fonction pour appeler l'intention du raccourci:
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);
}
écrire sur OnCreat l'appel de fonction:
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();
}
définir les autorisations sur manifeste:
<uses-permission
Android:name="com.Android.launcher.permission.INSTALL_SHORTCUT" />
Tout d’abord, ajoutez une permission pour ajouter un raccourci au manifeste:
<uses-permission
Android:name="com.Android.launcher.permission.INSTALL_SHORTCUT" />
Ensuite, appelez la fonction ci-dessous.
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);
}