快捷方式 package com.dualapp.main.plus;import android.content.Context;import android.content.Intent;import android.graphics.Bitmap;public class ShortcutBuilder { private static final String ACTION_ADD_SHORTCUT = "com.android.launcher.ac
package com.dualapp.main.plus; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; public class ShortcutBuilder { private static final String ACTION_ADD_SHORTCUT = "com.android.launcher.action.INSTALL_SHORTCUT"; private static final String ACTION_REMOVE_SHORTCUT = "com.android.launcher.action.UNINSTALL_SHORTCUT"; private Context mContext; private Intent mIntent; public ShortcutBuilder(Context context) { mContext = context; mIntent = new Intent(); mIntent.putExtra("duplicate", false); // 不允许重复创建 } public ShortcutBuilder intent(Intent intent) { mIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent); return this; } public ShortcutBuilder label(int label) { mIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, mContext.getString(label)); return this; } public ShortcutBuilder label(String label) { mIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, label); return this; } public ShortcutBuilder icon(Bitmap icon) { mIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, icon); mIntent.removeExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE); return this; } public ShortcutBuilder icon(Intent.ShortcutIconResource iconRes) { mIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes); mIntent.removeExtra(Intent.EXTRA_SHORTCUT_ICON); return this; } public ShortcutBuilder icon(String packageName) { return icon(packageName, 0); } public ShortcutBuilder icon(String packageName, int icon) { Intent.ShortcutIconResource iconRes = null; try { if (icon == 0) { icon = mContext.getPackageManager().getApplicationInfo(packageName, 0).icon; } Context weixin = mContext.createPackageContext(packageName, Context.CONTEXT_IGNORE_SECURITY); iconRes = Intent.ShortcutIconResource.fromContext(weixin, icon); } catch (Exception e) { return this; } return icon(iconRes); } public ShortcutBuilder enableDuplicate() { mIntent.putExtra("duplicate", true); return this; } public boolean add() { mIntent.setAction(ACTION_ADD_SHORTCUT); try { mContext.sendBroadcast(mIntent); } catch (Exception e) { return false; } return true; } public boolean remove() { mIntent.setAction(ACTION_REMOVE_SHORTCUT); try { mContext.sendBroadcast(mIntent); } catch (Exception e) { return false; } return true; } }