Android,android官網
添加
添加捷徑是向案頭應用(launcher)發送相關action的廣播:
public static final String ACTION_ADD_SHORTCUT = "com.android.launcher.action.INSTALL_SHORTCUT";
Code:
private void addShortcut(String name) { Intent addShortcutIntent = new Intent(ACTION_ADD_SHORTCUT); // 不允許重複建立 addShortcutIntent.putExtra("duplicate", false);// 經測試不是根據捷徑的名字判斷重複的
// 名字 addShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name); // 表徵圖 addShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(MainActivity.this, R.drawable.ic_launcher)); // 設定關聯程式 Intent launcherIntent = new Intent(Intent.ACTION_MAIN); launcherIntent.setClass(MainActivity.this, MainActivity.class); launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER); addShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, launcherIntent); // 發送廣播 sendBroadcast(addShortcutIntent); }
移除
action:
public static final String ACTION_REMOVE_SHORTCUT = "com.android.launcher.action.UNINSTALL_SHORTCUT";
Code:
private void removeShortcut(String name) { Intent intent = new Intent(ACTION_REMOVE_SHORTCUT); // 名字 intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name); // 設定關聯程式 Intent launcherIntent = new Intent(MainActivity.this,MainActivity.class).setAction(Intent.ACTION_MAIN); intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, launcherIntent); // 發送廣播 sendBroadcast(intent); }
許可權
<!-- 添加捷徑 --> <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> <!-- 移除捷徑 --> <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
我是天王蓋地虎的分割線