创建安卓桌面快捷方式
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); }
相关推荐
huha 2020-10-16
xfcyhades 2020-11-20
sgafdsg 2020-11-04
Michael 2020-11-03
fengyeezju 2020-10-14
ziyexiaoxiao 2020-10-14
业余架构师 2020-10-09
OuNuo0 2020-09-29
moses 2020-09-22
Angelia 2020-09-11
qinxu 2020-09-10
刘炳昭 2020-09-10
Nostalgiachild 2020-09-07
Nostalgiachild 2020-08-17
leavesC 2020-08-14
一青年 2020-08-13
AndroidAiStudy 2020-08-07
ydc0 2020-07-30
绿豆饼 2020-07-28