ShortCutUtil工具类:

import android.app.Activity;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
 
/**
 * 创建删除快捷图标
 * 需要权限: com.android.launcher.permission.INSTALL_SHORTCUT
 *        com.android.launcher.permission.UNINSTALL_SHORTCUT
 */
public class ShortCutUtil {
 
	private ShortCutUtil() {
        throw new Error("Do not need instantiate!");
    }
	
	/**
     * 检测是否存在快捷键
     * @param activity Activity
     * @return 是否存在桌面图标
     */
	public static boolean hasShortcut(Activity activity) {
		boolean isInstallShortcut = false;
		ContentResolver cr = activity.getContentResolver();
		String AUTHORITY = "com.android.launcher.settings";
		Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY
                + "/favorites?notify=true");
		Cursor c = cr.query(CONTENT_URI, 
				new String[]{"title", "iconResource"}, "title=?", 
				new String[]{activity.getString(R.string.app_name).trim()},
                null);
		if (c != null && c.getCount() > 0) {
			isInstallShortcut = true;
		}
		
		return isInstallShortcut;
	}
	
	/**
     * 为程序创建桌面快捷方式
     * @param activity Activity
     * @param res     res
     */
	public static void addShortcut(Activity activity,int res) {
		Intent shortcut = new Intent(
                "com.android.launcher.action.INSTALL_SHORTCUT");
		//快捷方式的名称
		shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, 
				activity.getString(R.string.app_name));
		//不允许重复创建
		shortcut.putExtra("duplicate", false);
		 Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
		 shortcutIntent.setClassName(activity, activity.getClass().getName());
		 shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
		//快捷方式的图标
		 Intent.ShortcutIconResource iconRes = 
				 Intent.ShortcutIconResource.fromContext(activity, res);
		 shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);
		 activity.sendBroadcast(shortcut);
	}
	
	/**
     * 删除程序的快捷方式
     * @param activity Activity
     */
	public static void delShortcut(Activity activity) {
		Intent shortcut = new Intent(
                "com.android.launcher.action.UNINSTALL_SHORTCUT");
		shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,
                activity.getString(R.string.app_name));
		String appClass = activity.getPackageName() + "."
				+ activity.getLocalClassName();
		ComponentName cn = new ComponentName(activity.getPackageName(), appClass);
		shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(
                Intent.ACTION_MAIN).setComponent(cn));
		activity.sendBroadcast(shortcut);
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值