Home » Android » android – Install launcher icon in home screen once

android – Install launcher icon in home screen once

Posted by: admin May 14, 2020 Leave a comment

Questions:

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?

PS:
A complicating factor is that I am building my app using PhoneGap, meaning the main activity is not “Activity” but “DroidGap”.

How to&Answers:

In the example, it returns the intent in setResult(...). I believe you need to run sendBroadcast(intent) to trigger installation of the shortcut.

Answer:

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

Answer:

The class DroidGap extends Activity so you can just add in the code from the link you provided to add a shortcut.