今天遇到一个需求,就是向桌面添加一个快捷方式,使点击时链接到特定的网页。网上找了一下,看到这篇文章

受其启发,实现了该功能。

public void

addShortcut(Parcelable icon, String name, Uri uri){

Intent intentAddShortcut = new

Intent(ACTION_ADD_SHORTCUT);

//添加名称

intentAddShortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,

name);

//添加图标

intentAddShortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,

icon);

//设置Launcher的Uri数据

Intent intentLauncher = new Intent();

intentLauncher.setData(uri);

//添加快捷方式的启动方法

intentAddShortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT,

intentLauncher);

sendBroadcast(intentAddShortcut);

}

当然,你还需要添加一个permission

"com.android.launcher.permission.INSTALL_SHORTCUT"

/>

这里第一个参数Parcelable类型的icon如何获得呢,以下举个例子从Drawable文件夹中获取图片。

Parcelable icon =

Intent.ShortcutIconResource.fromContext(this,

R.drawable.icon);

转:http://blog.csdn.net/llfjfz/article/details/5752017

如何实现添加快捷图标?

Launcher为了让其他应用程序能够定制自己的快捷图标,就注册了一个BroadcastReceiver专门接收其他应用程序发来的快捷图标

定制信息。所以只需要根据该BroadcastReceiver构造出相对应的Intent并装入我们的定制信息,最后调用sendBroadcast方

法就可以创建一个快捷图标了。那么,要构造怎样一个Intent才会被Launcher的BroadcastReceiver接收呢?我们还是先来看看这

个BroadcastReceiver的注册信息吧。

下面是Launcher的AndroidManifest.xml文件中Install-ShortcutReceiver的注册信息。

android:name=”.InstallShortcutReceiver”

android:permission=

“com.android.launcher.permission.INSTALL_SHORTCUT”>

<intent-filter>

intent-filter>

如何向这个 BroadcastReceiver 发送广播,设置如下:

首先应用程序必须要有com.android.launcher.permission.INSTALL_SHORTCUT权限;

然后广播出去的Intent的action设置com.android.launcher.action.INSTALL_SHORTCUT;

这样广播就可以发送给Launcher的InstallShortcutReceiver了;

而快捷图标的信息则是以附加信息的形式存储在广播出去的Intent对象中的,包括有图标、显示的名称以及用来启动目标组件的Intent这三种信息。我们可以通过putExtra的重载方法,通过指定相应的键值,将这些信息放到附加信息的Bundle对象中。

列出了各种快捷图标信息相对应的键值和数据类型:

下面举些具体的例子,如下:

private final String ACTION_ADD_SHORTCUT =

“com.android.launcher.action.INSTALL_SHORTCUT”;

Intent addShortcut =new Intent(ACTION_ADD_SHORTCUT);

String numToDial = null;

Parcelable icon = null;

numToDial = “110″;

icon =

Intent.ShortcutIconResource.fromContext(this,R.drawable.jing);

//numToDial = “119″;

//icon =

Intent.ShortcutIconResource.fromContext(this,R.drawable.huo);

//图标

addShortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,icon);

//名称

addShortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,numToDial);

//启动目标组件的Intent

Intent directCall;

directCall.setData(Uri.parse(“tel://”+numToDial));

addShortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT,directCall);

sendBroadcast(addShortcut);

上面的程序运行后的界面如下:

总结说明

只要知道这些信息后,你就可以轻而易举的为应用程序添加快捷图标。

在Launcher 添加应用程序的快捷图标

当我们在Home应用程序Launcher的桌面空白处长按触摸时,会出现一个对话框,提示选择要添加的桌面组件,如下图所示:

这里出现了快捷图标的选项。选择添加快捷图标后,会弹出一个对话框,显示出了可添加快捷图标的Activity所属的应用程序的图标和名称的列表。当我们想把添加快捷图标的Activity添加到这一列表时,只需要在这个Activity注册时添加一个Action为android.intent.action.

CREATE_SHORTCUT的IntentFilter就可以,如下面所示:

这样,在这个Activity列表里,就有了你的应用程序的图标和名称。有时候,我们可以在应用程序中定义一个直接在桌面创建快捷图标的Activity,可以简化用户操作,例子如下:

在类FireShortcut中,重新实现onCreate方法。首先在以上代码的第 16

行对启动此Activity的Action进行判断,若是“添加快捷图标”的Action就初始化快捷图标的Intent——设置名称、图标及Intent。由于“添加快捷图标”Action是由Launcher通startActivityForResult这一方法发出的,所以为了能够在当前Activity退出后把初始化的快捷图标Intent返回给Launcher应用程序,就在第35行调

用了setResult这一方法,设置结果值为RESULT_OK表示正常返回,而快捷图标的Intent则作为结果Intent返回给

Launcher,然后调用finish()方法结束Activity。若Action直接不匹配,设置结果值为RESULT_CANCELED表示取

消,然后退出。

定义完了类FireShortcut以后,不要忘了还要在AndroidManifest.xml中对其进行注册声明。另外为了使该Activity能够被添加到桌面的快捷图标的列表中,还要添加相应的IntentFilter。

现在,在桌面的添加快捷图标的Activity的列表中,就出现了FireShortcut选项,单击此图标,就会直接在桌面上添加一个“拨打火警119”的快捷图标了。

android桌面快捷网页,Android向桌面添加快捷方式,使其指向特定的网页相关推荐

  1. html5添加到安卓桌面图标,Android向桌面添加快捷方式,使其指向特定的网页

    转载: http://www.cnblogs.com/wanyao/archive/2011/11/27/2265333.html 今天遇到一个需求,就是向桌面添加一个快捷方式,使点击时链接到特定的网 ...

  2. android url 快捷方式,Android向桌面添加快捷方式,使其指向特定的(URL)网页

    /* * 在桌面添加快捷方式 * @param      icon         快捷方式图标 * @param      name      快捷方式名称 * @param      uri    ...

  3. 计算机桌面快捷标删了,桌面快捷方式删不掉怎么办【图解】

    电脑在我们的生活中使用的越来越广泛.电脑是一种用于高速计算的电子计算器.随着科技的不断发展,现在电脑的功能也是越来越强大了.现在人们不仅会利用电脑来工作和学习,也会利用电脑来娱乐.当我们在使用电脑的过 ...

  4. python桌面快捷图标_python 创建桌面快捷方式 | 学步园

    首先得安装 ActiveState ActivePython  . 因为这个中带了 winshell 库 from os import path import winshell #---------- ...

  5. Cerebro 一个跨平台的桌面快捷使用工具

    CSDN GitHub Cerebro 一个跨平台的桌面快捷使用工具 AderXCoding/system/tools/cerebro 本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际 ...

  6. android windows安卓版,Android Windows7

    Android Windows7是一款运行在以Android 2.0以上操作系统的智能手机(包括Ophone和乐风)或者平板电脑上面的手机桌面插件,完美模拟了Windows7的界面风格和操作习惯,集成 ...

  7. iframe嵌入页面白屏_封闭在家学网页制作!为页面嵌入PDF文件——零基础自学网页制作

    在页面中嵌入PDF文件 在上一篇<在html页面中嵌入其他页面的方法--零基础自学网页制作>(结尾见目录)中我们学习了如何在页面中嵌入其他页面的操作.今天我们来嵌入一个pdf文件. 其实使 ...

  8. Android Launcher开发(五)添加应用程序桌面快捷方常见问题及解决方案

    最近做到的应用做刚好需要添加快捷方式的功能, 在参考了源代码和网上一些其他资料后做了出来. 在做的时候遇到两个问题, 一.  程序卸载后桌面快捷方式仍然存在: 关于此问题, 网上的资料和实际中很多应用 ...

  9. android快捷代码,Android实现向桌面添加快捷方式的代码

    对于一个希望拥有更多用户的应用来说,用户桌面可以说是所有软件的必争之地,如果用户在手机桌面上建立了该软件的快捷方式,用户将会更频繁地使用该软件.因此,所有 Android程序都应该允许用户把软件的快捷 ...

  10. Ubuntu中给eclipse和android studio添加桌面快捷图标

    Ubuntu 12.04 创建应用程序启动项(可在Unity LaucherPad显示) http://www.cnblogs.com/bluestorm/archive/2012/10/12/272 ...

最新文章

  1. nodejs中的路径和url操作
  2. Access ADO多连接时数据延迟无法同步无法及时更新的解决办法
  3. 银行业B端数字化转型逻辑
  4. 洛谷——P1031 均分纸牌
  5. Android 仿王者荣耀广告弹窗,android仿王者荣耀对战资料之能力图
  6. 【渝粤教育】广东开放大学 数据结构 形成性考核 (24)
  7. [react] 说说react的生命周期有哪些?
  8. java 采集 cms_开源 java CMS - FreeCMS2.3 Web页面信息采集
  9. java 字符串方法
  10. Project Euler Problem 27小结
  11. CRT中的sftp上传文件出现中文路乱码
  12. PHP 暂停函数 sleep() 与 usleep() 的区别
  13. 10006---当当架构部张亮:从码农到大牛,技术与心境的双重提升
  14. 基于Android 的手机传感器检测
  15. java io closed_java.io.IOException: Stream closed 异常的原因和处理
  16. 线代 006 克拉默法则 线性方程组求解
  17. Android Studio系统盘瘦身
  18. DeepLearing—CV系列(二十二)——DCGAN生成动漫卡通人脸的Pytorch实现
  19. 性能测试:Loadrunner 脚本录制、设置事务、添加检查点、参数化以及添加关联
  20. C语言基本数据类型之整型变量

热门文章

  1. 【数字信号调制】基于matlab GUI数字信号调制系统【含Matlab源码 1030期】
  2. php5 Trace如何配置,配置参考 · ThinkPHP5.0完全开发手册 · 看云
  3. 无监督学习 k-means_无监督学习-第5部分
  4. Mac下Eclipse SVN 更换账号
  5. python include目录,python pip指定库目录和include目录
  6. python unittest接口测试_Python+unittest 接口自动化测试
  7. 解析JavaScript模拟事件的注意要点
  8. 分布式系统关注点——99%的人都能看懂的「熔断」以及最佳实践
  9. 国务院印发《政务信息资源共享管理暂行办法》
  10. 企业wiki之confluence安装部署(linux)及其破解