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

简介: 让程序更好更多的被用户使用到,向桌面添加一个程序的快捷方式将是一种快捷方式,正好我在开发阅读器的时候,用到过这个知识点。

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

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

我们知道要发送一个广播,必须要有一个要广播的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

相关文章
|
API Windows
浅尝浏览器桌面通知 Notification
浅尝浏览器桌面通知 Notification
263 0
|
2月前
|
API
电脑上控制所有软件,比如说微信自动发消息,QQ
电脑上控制所有软件,比如说微信自动发消息,QQ
|
4月前
基于QT实现的QQ聊天简易版(UDP通信版)
源码已经给小伙伴们整理好了,微信搜索 嵌入式工程之家 关注公众号回复 QQ 即可获得源码和详细操作指示哦~
105 0
|
缓存 网络协议 C++
Qt广告机客户端(下位机)
连接服务器(上位机) 广告图片播放模块 日期显示模块 天气显示模块 信息提示模块
129 0
|
监控 JavaScript Windows
网页未读邮件windows弹窗提醒
因为工作需要经常查看邮件,现写一个js代码用于固定时间刷新邮箱界面并监控新增的未读邮件,再弹出Windows弹框提醒
95 0
在网页端打开本地桌面客户端程序
在网页端打开本地桌面客户端程序
174 0
|
API C#
electron实现类似QQ来新消息时的闪烁与任务栏窗口提醒
公司项目有一款带即时聊天、群组功能的APP,因为要给客服人员使用,需要开发PC版本。之前使用C#开发过一个PC版本,但是C#的UI这一块支持的不太好,而且升级比较麻烦,我就牵头基于Electron去实现了一个PC版本。
3122 0
|
Web App开发 HTML5 移动开发
浏览器桌面通知Notification实践
  一言不合就上图:   最近常常在浏览器看到这样的消息推送,还有QQ.com的推送,现在我对这个不了解,不知道叫消息自动推送对不对,这个时chrome浏览器的截图,出现在右下角,其他浏览器的样式可能有些微差别。
2879 0
|
Linux Shell 程序员
使用终端工具给你的电脑发送弹窗提醒!
使用终端工具给你的电脑发送弹窗提醒!
394 0
使用终端工具给你的电脑发送弹窗提醒!