public static void addShortcut(Activity cx, String name) {
// TODO: 2017/6/25 创建快捷方式的intent广播
Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
// TODO: 2017/6/25 添加快捷名称
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
// 快捷图标是允许重复
shortcut.putExtra("duplicate", false);
// 快捷图标
Intent.ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(cx, R.mipmap.ic_launcher);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);
// TODO: 2017/6/25 我们下次启动要用的Intent信息
Intent carryIntent = new Intent(Intent.ACTION_MAIN);
carryIntent.putExtra("name", name);
carryIntent.setClassName(cx.getPackageName(),cx.getClass().getName());
carryIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//添加携带的Intent
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, carryIntent);
// TODO: 2017/6/25 发送广播
cx.sendBroadcast(shortcut);
}
http://www.360doc.com/content/16/0920/00/26211242_592141735.shtml
注意事项: 在设置 EXTRA_SHORTCUT_INTENT时,添加和删除快捷方式的这个INTENT对象的ACTION属性必须设置为相同内容,才能声明删除和创建的快捷方式是一个,进行绑定
Android桌面快捷方式那些事与那些坑# Android桌面快捷方式那些事与那些坑
https://www.cnblogs.com/waylife/p/android-shortcut-summary.html
public void addshotcut(Context context, String sName, Intent actionintent, Intent.ShortcutIconResource shortcutIconResource, boolean allow) {
Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
shortcut.putExtra("duplicate", allow);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, sName);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, shortcutIconResource);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, actionintent);
context.sendBroadcast(shortcut);
}
public void deleshortcut(Context context, String sName, Intent actionintent, boolean allow) {
Intent shortcut = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT");
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, sName);
shortcut.putExtra("duplicate", allow);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, actionintent);
context.sendBroadcast(shortcut);
}