通过发送广播来向桌面添加一个快捷方式(附源码)

让程序更好更多的被用户使用到,向桌面添加一个程序的快捷方式将是一种快捷方式,正好我在开发阅读器的时候,用到过这个知识点。为了方便,这里还是再新建一个项目来讲解一下是如何做到让用户通过点击一个按钮来实现向桌面添加一个快捷方式的。想学习这方面知识的朋友,可以借鉴一下,文章中最后附源码哈。

其实在程序中要向桌面添加程序的快捷方式,只需简单的三步。

我们知道要发送一个广播,必须要有一个要广播的Intent,通过设置Intentaction属性值来让接收者知道这个intent的意图;

其次就是要设置快捷方式要启动的程序,快捷方式的图标和名称,这肯定是可以理解的;

最后一步,便是将第一步中的广播发送出去啦。

具体如下:

首先,创建一个添加快捷方式的Intent,该IntentAction的属性值应该是com.android.launcher.INSTAL_SHORTCUT,这一步的代码是通用的;

//向桌面添加快捷方式的广播意图
Intent addShortCutIntent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");

其次,通过为该 Intent 添加 Extra 属性来设置快捷方式的标题、图标及快捷方式对应的启动程序(分别对应下面的代码);

//桌面快捷方式的图标
Parcelable icon = Intent.ShortcutIconResource.fromContext(AddShortCutActivity.this, R.drawable.ic_launcher);
//用于点击快捷方式要启动的程序,这里就启动本程序了
Intent startIntent = new Intent(AddShortCutActivity.this, AddShortCutActivity.class);
//快捷方式的名称
addShortCutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "快捷方式");
//快捷方式的图标
addShortCutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
//将快捷方式与要启动的程序关联起来
addShortCutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, startIntent);

最后,就是调用 sendBroadcast() 方法发送广播即可添加快捷方式。

//发送广播,添加快捷方式
sendBroadcast(addShortCutIntent);

另外,还有一点需要注意的是,用户的桌面不是随随便便就可以让你添加个快捷方式的,这个过程还是需要一个权限的,这个权限就是: com.android.launcher.permission.INSTAL_SAHORTCUT

<!--添加快捷方式需要的权限  -->
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>

通过发送广播来向桌面添加程序的快捷方式,体现了一种通过广播接收者来实现组件间进行通信的一种新思路。其实本质还是通过 intent 实现的组件间的通信。

除了这种在程序中,向桌面添加快捷方式之外,还可以向launcher添加快捷方式,这种方式只需要在AndroidManifest.xml中配置要启动的程序的Activity<intent-filter>元素即可。

<intent-filter>
<action android:name="android.intent.action.CREAT_SHORTCUT"/>
</intent-filter>

这样配置完成后,便会在 Shortcuts 列表中看到新添加的快捷方式。这种方式配置简单,但明显没有将快捷方式添加到桌面来的方便。


 源码:

http://download.csdn.net/detail/yaolingrui/4127416

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值