Android 通过程序添加桌面快捷方式

时间:2023-03-08 21:06:01

原理:通过代码向 Launcher 中的广播接收者发送广播来创建快捷图标。

首先要声明的权限是:

    <!--添加图标的权限-->
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
        //创建用于发送广播的intent
Intent broadcastIntent = new Intent();
// 指定动作名称
broadcastIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
// 指定快捷方式的图标
Parcelable icon = Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_launcher);
broadcastIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
// 指定快捷方式的名称
broadcastIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "快捷方式的名称");
// 指定快捷图标激活哪个activity
Intent activityIntent = new Intent();
activityIntent.setAction(Intent.ACTION_MAIN);
activityIntent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName component = new ComponentName(this, MyActivity.class);
activityIntent.setComponent(component);
broadcastIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, activityIntent);
// 只创建一次快捷方式
broadcastIntent.putExtra("duplicate", false);
sendBroadcast(broadcastIntent);