When a user installs an Android app, a launcher icon is created in the apps menu. Many users I talk to expect that when they install an app, an icon should appear automatically on their home screen (“launch pad”).
A lot of apps achieve this somehow. My preference would be to have a window appear on install asking the user “Do you want to add a shortcut?” If that’s not possible, any code that auto-adds the shortcut will do.
Android gives a bunch of code here: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LauncherShortcuts.html
It is implied that adding this code (and the related xml) to your project will do the trick. But it does not have the effect I want. It seems the code provided is passive, and I need to trigger it somehow.
So my question is:
How do I trigger the installation of a shortcut, and how do I make sure it happens only once, preferably triggered by some kind of “app install” event?
A complicating factor is that I am building my app using PhoneGap, meaning the main activity is not “Activity” but “DroidGap”.
In the example, it returns the
setResult(...). I believe you need to run
sendBroadcast(intent) to trigger installation of the shortcut.
Intent shortcutIntent = new Intent(getApplicationContext(), HomeScreen.class); shortcutIntent.setAction(Intent.ACTION_MAIN); Intent addIntent = new Intent(); addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "AIMS ICD"); addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.aims)); addIntent.putExtra("duplicate", false); addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); getApplicationContext().sendBroadcast(addIntent);
The class DroidGap extends Activity so you can just add in the code from the link you provided to add a shortcut.