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

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

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

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

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

相关文章
|
Web App开发 缓存 安全
电脑屏幕上的广告太多怎么解决?
安装一个广告拦截扩展或软件,如AdBlock Plus、uBlock Origin等。这些工具可以帮助拦截网页广告,在浏览器的扩展商店中搜索并添加这些扩展。例如,在Chrome中,你可以访问Chrome网上应用店来安装。
|
9月前
|
人工智能 内存技术
Gemini 2.0 Flash Thinking:谷歌推出实验性多模态推理模型,在快速生成的同时展示详细的思考过程
谷歌推出的实验性推理模型Gemini 2.0 Flash Thinking,展示了详细的思考过程,能够在多个领域快速解决问题,并提供推理路径。本文将详细介绍该模型的功能、技术原理及使用限制。
438 26
Gemini 2.0 Flash Thinking:谷歌推出实验性多模态推理模型,在快速生成的同时展示详细的思考过程
|
9月前
|
人工智能 关系型数据库 数据库
Perplexideez:开源本地 AI 搜索助手,智能搜索信息来源追溯
Perplexideez 是一款开源的本地 AI 搜索助手,旨在通过智能搜索和信息来源追溯功能,提升用户的搜索体验。它支持多用户、单点登录(SSO),并提供美观的搜索结果展示。Perplexideez 基于 Postgres 数据库,集成了 Ollama 或 OpenAI 兼容的端点,使用 SearXNG 实例进行网络搜索。
265 14
Perplexideez:开源本地 AI 搜索助手,智能搜索信息来源追溯
|
9月前
|
机器学习/深度学习 缓存 人工智能
RAG新突破:块状注意力机制实现超低延迟检索增强
检索增强生成(RAG)技术结合检索和生成模型,有效提升大型语言模型的知识获取能力。然而,高推理延迟限制了其在实时场景的应用。论文《Block-Attention for Low-Latency RAG》提出块状注意力机制,通过将输入序列划分为独立块并预先计算缓存KV状态,显著降低推理延迟。实验结果显示,该机制在保持模型准确性的同时,大幅提高了推理效率。
229 9
|
9月前
|
人工智能 城市大脑 自然语言处理
阿里云中国混合云PaaS及服务市场份额第一
阿里云中国混合云PaaS及服务市场份额第一
|
11月前
|
JavaScript 前端开发 UED
HTML 超链接的多种类型及应用
【10月更文挑战第17天】HTML 超链接类型丰富多样,它们共同构成了网页中不可或缺的导航和交互元素。通过合理地选择和运用这些超链接类型,我们可以为用户创造更加流畅和便捷的浏览体验,提升网站的可用性和吸引力。
432 1
|
人工智能 前端开发 数据可视化
AI代码生成器——CodePal
【2月更文挑战第21天】AI代码生成器——CodePal
567 1
AI代码生成器——CodePal
|
JSON API 数据格式
在钉钉中,你可以使用API来获取文件或文件夹的信息
在钉钉中,你可以使用API来获取文件或文件夹的信息
393 2
计算机故障的分类、故障分析与排除
计算机故障的分类、故障分析与排除。
226 0