android shortcut 创建与删除

本文介绍了在Android中创建和删除快捷方式的步骤,包括所需的权限设置如`INSTALL_SHORTCUT`和`UNINSTALL_SHORTCUT`。在代码实现中,需要注意重复创建时系统的提示,以及删除快捷方式后的延迟效果,需要切换桌面后快捷方式才会真正消失。

下面是主要步骤及主要代码:

第一步:权限,创建与删除,需要加入权限

 <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
  <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />

第二步:编写代码

public void deleteShortCut() {
		String DROP_SHORTCUT_ACTION = "com.android.launcher.action.UNINSTALL_SHORTCUT";
		Intent intent2 = new Intent(DROP_SHORTCUT_ACTION);
		// 指定要删除的shortcut名称
		intent2.putExtra(Intent.EXTRA_SHORTCUT_NAME, "sina1");

		String appClass2 = getPackageName() + "." + getLocalClassName();

		ComponentName component2 = new ComponentName(getPackageName(),
				appClass2);
		intent2.putExtra(
				Intent.EXTRA_SHORTCUT_INTENT,
				new Intent().setAction(Intent.ACTION_MAIN).setComponent(
						component2));
		sendBroadcast(intent2);
	}

	public void createShortCut() {
		String CREATE_SHORTCUT_ACTION = "com.android.launcher.action.INSTALL_SHORTCUT";
		Intent intent = new Intent(CREATE_SHORTCUT_ACTION);

		// 设置快捷方式图片
		intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
				Intent.ShortcutIconResource.fromContext(this,
						R.drawable.welcome));

		// 设置快捷方式名称
		intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "sina1");

		// 设置是否允许重复创建快捷方式 false表示不允许
		intent.putExtra("duplicate", false);

		// 设置快捷方式要打开的intent
		// 第一种方法创建快捷方式要打开的目标intent

		String appClass = getPackageName() + "." + getLocalClassName();

		ComponentName component = new ComponentName(getPackageName(), appClass);
		intent.putExtra(
				Intent.EXTRA_SHORTCUT_INTENT,
				new Intent().setAction(Intent.ACTION_MAIN).setComponent(
						component));

		// 发送广播
		sendBroadcast(intent);
	}


注意点:

1.重复创建,系统会用Toast提示:“sina1 快捷方式已经存在”

2 删除快捷方式后,可以再创建,不会提示 “sina1 快捷方式已经存在”,也表示删除成功

3 删除快捷方式后,桌面快捷方式还存在,有延迟,切换桌面后,快捷方式就不见了,不是没有删除成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值