Skip to content Skip to sidebar Skip to footer

How To Programmatically Create A Shortcut Of Another App In Android?

Suppose, I have some Android app which helps users to install some other apps. Is there any way to create a shortcut of this apps on home screen? Can I also specify the position of

Solution 1:

Try this :

publicvoidcreateShortCut() {
    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("com.whatsapp"));
    sendBroadcast(shortcutintent);
}

Solution 2:

A bit improved version: we are checking if the shortcut has been already created and must not be created if user remove it from the screen

finalstaticprivateStringPREF_KEY_SHORTCUT_ADDED="PREF_KEY_SHORTCUT_ADDED";

    @OverridepublicvoidonStart(){
        super.onStart();

// Checking if ShortCut was already added
        sharedPreferences = getPreferences(MODE_PRIVATE);
        booleanshortCutWasAlreadyAdded= sharedPreferences.getBoolean(PREF_KEY_SHORTCUT_ADDED, false);
        if (!shortCutWasAlreadyAdded) createShortcutIcon();


    } // end onStart// Creates shortcut on Android widget screenprivatevoidcreateShortcutIcon(){

        IntentshortcutIntent=newIntent(getApplicationContext(), Splash.class);
        shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

        IntentaddIntent=newIntent();
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));

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

        // Remembering that Shortcut was already added
        SharedPreferences.Editoreditor= sharedPreferences.edit();
        editor.putBoolean(PREF_KEY_SHORTCUT_ADDED, true);
        editor.commit();

        objPublicDelegate.showToast(getString(R.string.app_name)+ " shortcut created on screen.");

    } // end createShortcutIcon

Solution 3:

Post a Comment for "How To Programmatically Create A Shortcut Of Another App In Android?"