Je sais que ce n'est pas documenté et que cela ne fonctionnera pas sur tous les appareils, mais de plus en plus d'applications placent leurs raccourcis sur l'écran d'accueil après leur installation. ils ne vont pas ensemble. C'est ce que j'ai pour l'instant.
Besoin d'une permission dans le manifeste.
<uses-permission Android:name="com.Android.launcher.permission.INSTALL_SHORTCUT" />
Créez une intention d'activité qui devrait être appelée. Ex (de Cgeek):
Intent shortcutIntent = new Intent();
shortcutIntent.setClassName("com.example.androidapp", "SampleIntent");
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Créer un raccourci lui-même
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "Shortcut Name");
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(context, R.drawable.icon));
addIntent.setAction("com.Android.launcher.action.INSTALL_SHORTCUT");
context.sendBroadcast(addIntent);
Ma question est la suivante: Où ce code devrait-il aller pour créer un raccourci ajouté après l'installation de .apk? J'ai essayé ce code dans l'activité de lancement, il crée un raccourci cassé (une autre histoire) à chaque démarrage de l'application.
Autant que je sache, il s'agit d'une fonctionnalité facultative de l'application Market, et non des applications elles-mêmes. De par sa conception, une application ne reçoit aucune émission sur elle-même en cours d'installation. Si cela fonctionne, le plus tôt vous pourrez l'exécuter, c'est la première fois que l'utilisateur lance l'application. Cela dit:
Faire. Ne pas. Automatiquement. Créer. App. Raccourcis.
Déjà.
Ne pas usurper l'interface utilisateur de l'utilisateur.
Je suis d'accord avec la réponse actuellement acceptée, à savoir que vous ne devriez pas le faire en recevant une émission ou au moment de l'installation. Ne rien faire sans interaction ou permission de l'utilisateur.
Cependant, si vous fournissez un bouton dans votre application, vous le placerez dans les boutons Gestionnaire OnClick. Il ajouterait ensuite un raccourci lorsque l'utilisateur sélectionnerait l'option "ajouter un raccourci".
Cela peut être possible en ajoutant simplement le code ci-dessous à votre activité principale dans la méthode oncreate
Intent HomeScreenShortCut= new Intent(getApplicationContext(),
MainActivity.class);
HomeScreenShortCut.setAction(Intent.ACTION_MAIN);
HomeScreenShortCut.putExtra("duplicate", false);
//shortcutIntent is added with addIntent
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, HomeScreenShortCut);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "AppName");
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);
Ajouter ajouter cette permission à votre manifeste
<uses-permission Android:name="com.Android.launcher.permission.INSTALL_SHORTCUT" />
J'ai utilisé ce code pour créer 3 raccourcis sur la page d'accueil:
Intent HomeScreenShortCut= new Intent(getApplicationContext(),
MainActivity.class);
HomeScreenShortCut.setAction(Intent.ACTION_MAIN);
HomeScreenShortCut.putExtra("duplicate", false);
//shortcutIntent is added with addIntent
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, HomeScreenShortCut);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "AppName");
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);
Il existe des lacunes dans la même méthode ci-dessus. Prenez le raccourci vers l'écran d'accueil.