欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

创建安卓桌面快捷方式

程序员文章站 2022-03-31 21:40:40
...

 

    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);
	}