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可用于防止出现这种情况,您也可以将其添加到您的答案中。:)无论如何,谢谢