/** * * 返回添加到桌面快捷方式的Intent: * * 1.給Intent指定action="com.android.launcher.INSTALL_SHORTCUT" * * 2.給定義為Intent.EXTRA_SHORTCUT_INENT的Intent設置與安裝時一致的action(
/** * * 返回添加到桌面快捷方式的Intent: * * 1.給Intent指定action="com.android.launcher.INSTALL_SHORTCUT" * * 2.給定義為Intent.EXTRA_SHORTCUT_INENT的Intent設置與安裝時一致的action(必須要有) * * 3.添加許可權:com.android.launcher.permission.INSTALL_SHORTCUT */ public Intent getShortcutToDesktopIntent(Context context) { Intent intent = new Intent(); intent.setClass(context, context.getClass()); /* 以下兩句是為了在卸載應用的時候同時刪除桌面快捷方式 */ intent.setAction("android.intent.action.MAIN"); intent.addCategory("android.intent.category.LAUNCHER"); Intent shortcut = new Intent( "com.android.launcher.action.INSTALL_SHORTCUT"); // 不允許重建 shortcut.putExtra("duplicate", false); // 設置名字 // shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,context.getString(R.string.app_name)); shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, "11111"); // 設置圖標 shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(context, R.drawable.youtube)); // 設置意圖和快捷方式關聯程式 shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent); return shortcut; }
許可權
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
調用
public void click1(View v) { Intent intent = this.getShortcutToDesktopIntent(MainActivity.this); sendBroadcast(intent); }