android extra_shortcut_icon,Android Shortcut操作(一)

默认的Shortcut操作

默认安装后的应用(Launcher属性),图标都会出现在"抽屉面板"中,在里面长按并拖曳图标可以拖动到桌面,实现快捷方式的添加。

长按桌面的图标,"抽屉面板"的小箭头会变成一个垃圾箱的图标,然后将图标拖进去就删除了。

对Shortcut列表进行添加/删除操作

在默认桌面空白处长按,会弹出选择对话框,选择"Shortcut",找到要添加的应用快捷方式进行添加。

首先我们要将应用的选项添加到Shortcut列表里来,直接上代码:

/**

* 添加到Shortcut选项中(默认桌面上长按调出)

*

* 同时需要在manifest中为activity提供一个包含

* action="android.intent.action.CREATE_SHORTCUT"的intent-filter

*/

private void addShortcutToOptions(){

// 创建一个默认的Intent

Intent shortcut = new Intent();

//快捷方式的名称

shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));

//不允许重复创建

shortcut.putExtra("duplicate", false);

//指定当前的Activity为快捷方式启动的对象: 如 com.everest.video.VideoPlayer

//注意: ComponentName的第二个参数必须加上点号(.),否则快捷方式无法启动相应程序

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

ComponentName comp = new ComponentName(this.getPackageName(), appClass);

shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, newIntent(Intent.ACTION_MAIN).setComponent(comp));

// 下面的方法与上面的效果是一样的,另一种构建形式而已

// Intent respondIntent = new Intent(this, this.getClass());

// shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, respondIntent);

//快捷方式的图标

ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(this, R.drawable.icon);

shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);

// 发送到消息队列

setResult(RESULT_OK, shortcut);

}

应用重装/卸载后会自动删除

直接对Shortcut进行添加/删除操作(通过代码)

要点:

1. 给Intent指定action="com.android.launcher.INSTALL_SHORTCUT"

2. 给定义为Intent.EXTRA_SHORTCUT_INENT的Intent设置与安装时一致的action(必须要有)

3. 在AndroidManifest.xml中添加权限:com.android.launcher.permission.INSTALL_SHORTCUT

/**

* 为程序创建桌面快捷方式

*

* 同时需要在manifest中设置以下权限:

*

*/

private void addShortcut(){

Intent shortcut = newIntent("com.android.launcher.action.INSTALL_SHORTCUT");

// 快捷方式的名称

shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));

// 不允许重复创建

shortcut.putExtra("duplicate", false);

// 指定当前的Activity为快捷方式启动的对象: 如 com.everest.video.VideoPlayer

// 这里必须为Intent设置一个action,可以任意(但安装和卸载时该参数必须一致)

String action = "com.android.action.test";

Intent respondIntent = new Intent(this, this.getClass());

respondIntent.setAction(action);

shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, respondIntent);

// 下面的方法与上面的效果是一样的,另一种构建形式而已

// 注意: ComponentName的第二个参数必须加上点号(.),否则快捷方式无法启动相应程序

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

// ComponentName comp = new ComponentName(this.getPackageName(), appClass);

// shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(action).setComponent(comp));

// 快捷方式的图标

ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(this, R.drawable.icon);

shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);

sendBroadcast(shortcut);

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值