我在Android 8.0上制作Android应用程序。我在Using Static Shortcuts之前阅读过开发的快捷方式文档 但是这个doc没有方法将启动器图标添加到主屏幕。
我在8.0之前使用过方法。:
Intent i= new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_LAUNCHER);
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, i);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME,
context.getResources().getString(R.string.app_name));
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(context, R.drawable.icon));
intent.setAction(com.android.launcher.action.INSTALL_SHORTCUT);
context.sendBroadcast(intent);
如何将app luncher图标添加到主屏幕? 感谢。
答案 0 :(得分:0)
如Android开发者所述
com.android.launcher.action.INSTALL_SHORTCUT广播对您的应用不再有任何影响,因为它现在是一个私有的隐式广播。相反,您应该使用ShortcutManager类中的requestPinShortcut()方法创建应用程序快捷方式。
答案 1 :(得分:0)
众所周知,从android 8.0版开始,很多行为都会发生变化。在oreo中尝试以下代码,以便在安装应用程序时自动创建快捷方式图标。
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) {
Intent shortcutIntent = new Intent(getApplicationContext(), SplashActivity.class);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
shortcutIntent.setAction(Intent.ACTION_MAIN);
ShortcutInfoCompat shortcut = new ShortcutInfoCompat.Builder(getContext(), "shortcut")
.setShortLabel(getResources().getString(R.string.app_name))
.setIcon(IconCompat.createWithResource(getApplicationContext(), R.mipmap.ic_launcher))
.setIntent(shortcutIntent)
.build();
ShortcutManagerCompat.requestPinShortcut(getApplicationContext(), shortcut, null);
}