如何在安装应用程序时将应用程序的快捷方式添加到主屏幕?

S P*_*S P 29 android launcher homescreen android-manifest

我想在安装我的应用程序后立即在主屏幕上创建应用程序的快捷方式/启动器图标(甚至在我开始之前).那可能吗?我怎么能这样做?

Rob*_*bin 44

从ICS开始,你可以这样做:

public void createShortCut(){
    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(getApplicationContext(), EnterActivity.class));
    sendBroadcast(shortcutintent);
}
Run Code Online (Sandbox Code Playgroud)

另请参阅此链接的启动器源代码

编辑:如果有人会错过阅读评论,所以添加以下行.

这需要"com.android.launcher.permission.INSTALL_SHORTCUT"许可

  • 好的,找到了.这需要"com.android.launcher.permission.INSTALL_SHORTCUT"权限. (6认同)
  • 您可以通过自己的应用创建它,也可以通过其他正在运行的应用创建它.没有别的办法.PlayStore能够做到这一点因为它安装了你的应用程序.想一想:如果你的应用程序已经在设备上运行,并且正在侦听apk安装的广播事件,那么它可以为你执行此添加快捷方式操作.但这不是正常情况,你不能指望你在每台设备上都有这样的设施. (3认同)
  • 创建快捷方式后,下次它给我们提供消息"快捷方式"AppName"已经存在".我怎样才能隐藏这个Toast消息? (3认同)
  • 这个答案应该是接受的. (2认同)

Dor*_*onK 13

你忘了添加权限:

 <uses-permission
        android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
    <uses-permission
        android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
Run Code Online (Sandbox Code Playgroud)

这里很棒的教程:http: //androidforbegineers.blogspot.in/2014/01/android-home-screen-shortcut.html#!


Ted*_*opp 12

注意:这个答案现在是错误的.例如,请参阅Robin的答案,了解如何做到这一点.


据我所知,应用程序无法强制进入主屏幕.它会添加到启动器应用程序维护的应用程序列表中,但主屏幕通常由用户控制.使应用程序能够混乱主屏幕将是一个公开的滥用邀请.

  • 谢谢你的帮助.但我发现一些应用程序,我从Play商店安装,他们自动创建他们的快捷方式. (11认同)
  • 在Play商店中,我们设置了"在主屏幕上自动添加快捷方式". (8认同)
  • @SP - 这是游戏商店(与启动器合作),而不是你的应用程序,这样做.如果您在商店中关闭该选项,则主屏幕上将不会安装快捷方式(至少在安装时不安装).当应用程序运行时,这是一个不同的故事,正如罗宾指出的那样. (3认同)
  • 在我的所有设备中也能得到它.刚买了一部新手机,从Google Play重新下载了所有内容...当没有更多空间时,图标只停在我的屏幕上. (2认同)

Jac*_*1re 5

如果您安装了应用程序,则您的应用程序,任何服务或其他进程都不会处于活动状态!Android希望用户在"打开"应用程序时迈出第一步.您无法直接安装快捷方式!这就是答案.注意:在大多数设备上,启动器将为您的应用程序本身创建一个快捷方式.

在用户以某种方式启动您的应用程序至少一次后,您是否可以在运行时安装快捷方式?:是的(见罗宾斯回答).

有解决方法吗?也许,但没有好的.

更新,另一个提示:如果您已在用户的设备上安装了应用程序.(例如,如果您安装的第二个应用程序是"go pro"或其他内容的关键),那么您实际上可以从第一个应用程序启动第二个应用程序,而无需用户启动第二个应用程序(并添加快捷方式) .