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

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

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

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

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

相关文章
|
9月前
|
API Windows
浅尝浏览器桌面通知 Notification
浅尝浏览器桌面通知 Notification
195 0
|
8月前
|
缓存 网络协议 C++
Qt广告机客户端(下位机)
连接服务器(上位机) 广告图片播放模块 日期显示模块 天气显示模块 信息提示模块
85 0
|
4月前
|
XML Java Android开发
Android Studio App开发之监听系统广播Broadcast的讲解及实战(包括接收分钟到达广播、网络变更广播、定时管理器等 附源码)
Android Studio App开发之监听系统广播Broadcast的讲解及实战(包括接收分钟到达广播、网络变更广播、定时管理器等 附源码)
77 0
|
8月前
在网页端打开本地桌面客户端程序
在网页端打开本地桌面客户端程序
|
Web App开发
笔记本电脑能连接WiFi但浏览器无法打开网页的解决办法
笔记本电脑能连接WiFi但浏览器无法打开网页的解决办法
15583 0
笔记本电脑能连接WiFi但浏览器无法打开网页的解决办法
|
10月前
|
Java
使用noVnc远程控制桌面后自动打开应用程序
使用noVnc远程控制桌面后自动打开应用程序
215 0
|
Android开发
移动应用程序设计基础——点菜单列表实现2.0(实现短信接受以及服务与广播的使用)
1.接收短信、开启和停止服务的界面布局。 2.实现短信接收服务; 3.接收广播信息。 具体功能为: 1、 实现短信金额通知功能。在订餐程序,取消自动登录功能,并在注册界面增加开启和停止短信通知服务按钮,开启短信按钮点击提交后显示短信服务启动成功对话框,短信通知服务开启后,用户点菜后,将“您点的菜品总价值***元”发到注册手机上。停止短信按钮点击提交后现实短信服务停止对话框; 2、 实现用户点餐广播功能。用户点菜后,所点菜品及用户名以广播方式通知,广播接收到后,打开一个新的页面,以列表的方式追加一条记录,显示
136 0
移动应用程序设计基础——点菜单列表实现2.0(实现短信接受以及服务与广播的使用)
|
Web App开发 移动开发 前端开发
H5 notification浏览器桌面通知
Notification是HTML5新增的API,用于向用户配置和显示桌面通知。上次在别的网站上看到别人的通知弹窗,好奇之余也想知道如何实现的。实际去查一下发现并不复杂,且可以说比较简单,故写篇博客分享给大家,希望能帮你们了解这个API。 npm包: 我还发了一个npm包:notification-Koro1,非常轻量简洁,觉得不错的话,点个Star吧~ chrome下Notification的表现: 以谷歌为例,一开始需要用户允许通知:
380 0
H5 notification浏览器桌面通知
|
移动开发 前端开发 API
Notification 浏览器桌面通知
Notification是HTML5新增的API,用于想用户配置和现实桌面通知。这些通知的外观和特定功能因平台而异。 Notification通知是脱离浏览器的,即使用户没有停留在当前的标签页,甚至最小化了浏览器,也会在主屏幕的右下角显示通知,然后过一段时间后消失。 Notification在操作中也可以监听通知的显示,点击,关闭等事件。
299 0
|
Web App开发 HTML5 移动开发
浏览器桌面通知Notification实践
  一言不合就上图:   最近常常在浏览器看到这样的消息推送,还有QQ.com的推送,现在我对这个不了解,不知道叫消息自动推送对不对,这个时chrome浏览器的截图,出现在右下角,其他浏览器的样式可能有些微差别。
2719 0