如何在android中以编程方式添加快捷方式到主屏幕

当我开发一个android应用程序时,出现了这个问题。 我想分享我在开发过程中收集的知识。

Android为我们提供了一个intent类com.android.launcher.action.INSTALL_SHORTCUT,它可以用来添加快捷方式到主屏幕。 在下面的代码片段中,我们创build了名为HelloWorldShortcut的活动MainActivity的快捷方式。

首先,我们需要将权限INSTALL_SHORTCUT添加到Android清单xml中。

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> 

addShortcut()方法在主屏幕上创build一个新的快捷方式。

 private void addShortcut() { //Adding shortcut for MainActivity //on Home screen Intent shortcutIntent = new Intent(getApplicationContext(), MainActivity.class); shortcutIntent.setAction(Intent.ACTION_MAIN); Intent addIntent = new Intent(); addIntent .putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "HelloWorldShortcut"); addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.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); } 

注意我们如何创build包含我们目标活动的shortcutIntent对象。 这个intent对象被作为EXTRA_SHORTCUT_INTENT添加到另一个intent中。

最后我们播放了新的意图。 这将添加一个名为EXTRA_SHORTCUT_NAME的名称和由EXTRA_SHORTCUT_ICON_RESOURCE定义的图标。

干杯! Chanaka

也把这个代码,以避免多个快捷方式:

  if(!getSharedPreferences(Utils.APP_PREFERENCE, Activity.MODE_PRIVATE).getBoolean(Utils.IS_ICON_CREATED, false)){ addShortcut(); getSharedPreferences(Utils.APP_PREFERENCE, Activity.MODE_PRIVATE).edit().putBoolean(Utils.IS_ICON_CREATED, true); } 
    Interesting Posts