Android 如何添加我的应用程序';安装应用程序后,主屏幕的快捷方式是什么?

Android 如何添加我的应用程序';安装应用程序后,主屏幕的快捷方式是什么?,android,android-manifest,launcher,homescreen,Android,Android Manifest,Launcher,Homescreen,我想在安装应用程序后(甚至在启动之前)在主屏幕上创建应用程序的快捷方式/启动器图标。可能吗?我该怎么做呢?注意:这个答案现在是错误的。例如,请参阅,以了解实现此目的的方法 据我所知,一个应用程序不能强迫自己进入主屏幕。它被添加到launcher应用程序维护的应用程序列表中,但主屏幕通常由用户控制。让应用程序能够在主屏幕上乱七八糟将是滥用的公开邀请。由于ICS,您可以这样做: public void createShortCut(){ Intent shortcutintent = ne

我想在安装应用程序后(甚至在启动之前)在主屏幕上创建应用程序的快捷方式/启动器图标。可能吗?我该怎么做呢?

注意:这个答案现在是错误的。例如,请参阅,以了解实现此目的的方法



据我所知,一个应用程序不能强迫自己进入主屏幕。它被添加到launcher应用程序维护的应用程序列表中,但主屏幕通常由用户控制。让应用程序能够在主屏幕上乱七八糟将是滥用的公开邀请。

由于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);
}
另请参阅launcher的源代码,网址为:

编辑:如果有人错过了阅读评论,那么添加以下行


这需要
“com.android.launcher.permission.INSTALL\u快捷方式”
权限

您忘记添加权限了:

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

这里有很棒的教程:
!

如果安装应用程序,则应用程序、任何服务或其他进程都不会处于活动状态!Android希望用户迈出“打开”应用程序的第一步您无法直接安装快捷方式 在用户以某种方式启动应用程序至少一次后,能否在运行时安装快捷方式(见罗宾斯回答)

有解决办法吗? 也许吧,但是没有一个好的

更新,另一个提示:如果用户的设备上已经有应用程序。(例如,如果您安装的第二个应用程序是“going pro”或其他什么的键),那么您实际上可以从第一个应用程序启动第二个应用程序,而用户从未启动过第二个应用程序(并添加快捷方式)

  • 创建调用快捷方式意图的函数:

    private void criarAtalho() {
        Intent shortcutIntent = new Intent(getApplicationContext(), SplashScreen.class);
        shortcutIntent.setAction(Intent.ACTION_MAIN);
        Intent addIntent = new Intent();
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "nomeDaApp");
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.mipmap.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);
    }
    
  • 在创建函数调用时写入:

    if(!getSharedPreferences("APP_PREFERENCE", Activity.MODE_PRIVATE).getBoolean("IS_ICON_CREATED", false)){
        criarAtalho();
        getSharedPreferences("APP_PREFERENCE", Activity.MODE_PRIVATE).edit().putBoolean("IS_ICON_CREATED", true).commit();
    }
    
  • 设置清单上的权限:

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

  • 首先,添加向清单添加快捷方式的权限:

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

    安卓不是在安装时自动为应用程序添加快捷方式吗?@Renan-快捷方式会添加到应用程序列表中,但不会添加到主屏幕。是的。应用程序启动器添加到应用程序列表中,但不在主屏幕上。但从play store下载的应用程序通常会在主屏幕上创建快捷方式。谢谢您的帮助。但我发现有些应用程序是我从play store安装的,它们会自动创建快捷方式。我在所有设备中都能找到。刚买了一部新手机,重新下载了Google Play的所有内容。。。图标只是在没有足够空间时才停止出现在我的屏幕上。在play store中,我们有一个设置“在主屏幕上自动添加快捷方式”。但如果play store应用程序正在创建快捷方式,我认为这是可行的P:(@SP-这是play store(与启动器合作),而不是你的应用程序。如果你在商店中关闭该选项,则快捷方式将不会安装在主屏幕上(至少在安装时不会)。当应用程序运行时,情况就不同了,正如Robin指出的。从何处触发此操作?我想在启动应用程序之前创建快捷方式,即在安装应用程序后立即创建快捷方式。你可以通过自己的应用程序创建快捷方式,也可以通过其他运行应用程序创建快捷方式。没有其他方法。PlayStore可以这样做,因为它安装了你的应用程序。想想看这样:如果设备上已经有您的应用程序在运行,并且它正在侦听apk安装的广播事件,则它可以为您执行此添加快捷方式操作。但这不是正常情况,您不能期望在每个设备上都有这样的功能。好的,找到它。这需要“com.android.launcher.permission.INSTALL_SHORTCUT”权限。此答案应为accept。创建快捷方式后,下次它会给我们消息
    SHORTCUT”AppName"已存在
    。如何隐藏此toast消息?我没有忘记。但这不会强制应用程序在安装时创建快捷方式:PElse add@downvoter,如果您对某人的答案投了反对票,请添加评论。否则,投反对票是没有用的。我的答案是问题上下文中唯一完全正确的答案。它正在工作,b但每次启动应用程序时,都会创建应用程序图标。SharedRef可用于防止出现这种情况,您也可以将其添加到您的答案中。:)无论如何,谢谢