创建安卓桌面快捷方式

    last modify:2013-11-14 17:30:03

 ×××××××××××××××××××××××××××

 在一些软件启动时常常会创建一个快捷启动方式在桌面,那么是怎么实现的呢?

 

 首先,如果一个应用要在android桌面创建一个快捷方式,那么必须拥有以下权限:

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

 下面是具体的实现代码:

 

private void createShortcut() {
		Intent intent = new Intent();
		intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
		//步骤1:设置快捷方式的名称,注意系统在判断桌面的快捷方式是否重复时,是通过快捷方式的名称判断的,与图片无关。
		intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "捍 卫");
		//步骤2:设置快捷方式的图片资源. 有两种方式:
		//第一种:EXTRA_SHORTCUT_ICON_RESOURCE:设置快捷方式的图片icon资源,要求格式为ShortcutIconResource类型。
		//intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, ShortcutIconResource.fromContext(this, R.drawable.android));
		//第二种:EXTRA_SHORTCUT_ICON:也是设置快捷方式的图片icon资源,但是要求的格式是一个bitmap类型,
		//并且优先于上面的EXTRA_SHORTCUT_ICON_RESOURCE.如果两者都定义以EXTRA_SHORTCUT_ICON为主。
		//定义一个bitmap: BitmapFactory.decodeResource(getResources(), R.drawable.atools)  
		intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher));
		//防止重复创建快捷图标
		intent.putExtra("duplicate", false);
		//设置快捷方式的意图
		Intent shortcutIntent = new Intent(); //必须使用隐式意图或者包名类名形式启动,否则无法从快捷方式启动应用。
		//第一种初始化方式:通过包名和类名形式
		//shortcutIntent.setClassName(getPackageName(), "com.***.activity.HomeActivity");
		//第二种初始化方式:通过意图过滤器
		shortcutIntent.setAction("com.***.intent.action.HOME");
		shortcutIntent.addCategory(Intent.CATEGORY_DEFAULT);
		
		intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
		//发送广播给系统,系统接受到这个广播就会按照设定的name和图标icon创建桌面快捷方式
		sendBroadcast(intent);
	}

相关推荐