有很多人也写过创建桌面快捷键的blog,但是大部分都只讲了怎么用,其实技术使用起来都很简单,但是你使用后下次还知道吗?

根本原因还是不清楚原理,今天我就来讲讲shortcut创建过程。

过程:

home键--》点击添加--》弹出一个Dialog对话框--》Dialog对话框中的数据,是一个系统级专门用来查找的Activity启动
---》查找出数据显示能添加的快捷方式---》然后保存数据,退出dialog——》桌面launcher操作——》完成
原理:
查看源码,其实是launcher 中调用pickShortcut()方法,启动PickActivity检查需要的数据,在PickActivity中会检查
manifest.xml中对activity有没有加IntenttFilter,如果查到有,就会通过switch-case选择对于的Item返回消息给laucher,
laucher中在onResultActivity()做接受返回的数据,再次启动一个带返回值得Activity到ShortcutActivity,等待ShortcutActivity
处理完成,返回信息,调用completeAddliveFolder(). 
 其实我们要做的主要是下图步骤2和步骤5;步骤2 在manifest.xml给Activity添加IntentFileter,步骤5,给快捷方式添加一个
图标和名称。

代码:

 <activity android:name="ShortCutTest">                <intent-filter>                    <action android:name="android.intent.action.CREATE_SHORTCUT"/>                </intent-filter>            </activity>   
public class ShortCutTest extends Activity{         @Override        protected void onCreate(Bundle savedInstanceState) {             // TODO Auto-generated method stub             super.onCreate(savedInstanceState);         createShortCut();  }     public void createShortCut(){             Intent addShortCut;     //判断是否需要添加快捷方式             if(getIntent().getAction().equals(Intent.ACTION_CREATE_SHORTCUT)){                 addShortCut = new Intent();                 //快捷方式的名称                 addShortCut.putExtra(Intent.EXTRA_SHORTCUT_NAME , "我的快捷方式");                 //显示的图片                Parcelable icon = ShortcutIconResource.fromContext(this, R.drawable.icon);                 addShortCut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);     //快捷方式激活的activity,需要执行的intent,自己定义                 addShortCut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent());                 //OK,生成                 setResult(RESULT_OK, addShortCut);     }else{                 //取消                 setResult(RESULT_CANCELED);     }     }
}   

理解了原理,是不是再也不会忘记怎么添加快捷方式了

android创建桌面快捷键shortcut相关推荐

  1. Android 创建桌面快捷图标

    Android 创建桌面快捷图标 目前有一个需求,在应用打开的时候,创建桌面快捷方式图标(不是很友好). 部分手机不必如MI3,在Nexus 5X等手机则需要. 代码示例: public class ...

  2. Android创建桌面快捷方式所遇到的问题与解决方案

    将近二个多月没写博客了.      之前一段时间一直在搞红包助手,就没抽时间写博客,但写这个真的是很好玩.没想到居然在Android上实现模拟点击,从而实现自动抢红包,有兴趣的同学可以参考https: ...

  3. centos安装软件后没有快捷键,创建桌面快捷键的方式【pycharm的快捷键】

    centos7.8(2003)pycharm创建快捷键 当安装完pycharm的时候,随便创建个文件,目的是进入到编辑界面.点击pycharm的tools的创建到桌面的按钮就可以了Crete Desk ...

  4. android保存连接地址到桌面快捷方式,Android创建桌面快捷方式两种方法

    谈谈在桌面上直接生成.个人觉得这个比较爽快,既然都是快捷方式了干嘛还要再隐藏一层呢?当然喜欢桌面干净的就比较喜欢第二个了. 第一个是通过广播(Broadcast)的形式向Luncher发送请求生成快捷 ...

  5. Android 创建桌面快捷方式的方法

    在Android O及后续更高平台上,应用在桌面创建快捷方式的方法有了较多变更,从交互方式上趋向于让用户二次确认.代码如下: public static void addShortCut(Contex ...

  6. android自动创建桌面,Android创建桌面快捷方式

    需求:点击按钮创建快捷方式 1.用户触发创创建事件时,在手机桌面创建指定页面的快捷方式. 2.当APP关闭时,点击桌面快捷方式打开APP,跳转至指定页面 3.当APP在后台是,点击桌面快捷方式,跳转至 ...

  7. android 桌面图标创建,android创建桌面图标

    private void setDeskShortCut() { boolean installedshortcut = sp.getBoolean("installedshortcut&q ...

  8. web项目创建桌面快捷键

    1.将web项目logo的图片格式转换成ico格式,网站http://www.faviconico.org/ 2.方法1: 在桌面点右键--新建--快捷方式. 在弹出来的对话框里,把完整的地址写进去, ...

  9. [Android]为指定的应用创建桌面快捷方式

    网上一搜一大把为自己的应用创建快捷方式,但是本文的侧重点在为"指定的应用"创建桌面快捷方式.     常见的桌面快捷方式有两要素:1.应用名 2.应用图标. 指定应用图标的信息是: ...

  10. Android 创建,删除,检测桌面快捷方式

    2019独角兽企业重金招聘Python工程师标准>>> 参考 Android 创建快捷方式 Android 快捷方式动画 创建桌面快捷方式需权限 <uses-permissio ...

最新文章

  1. 输出stage.displayState等于null原因
  2. 机器学习面试中常考的知识点,附代码实现(二)
  3. 数据结构实验4:C++实现循环队列
  4. 程序员该做的事 - 每天、每周、每月
  5. C和指针之动态内存分配之(编写calloc函数,函数内部使用malloc函数来获取内存)
  6. 【CodeForces - 371D】Vessels(思维,元素合并,并查集)
  7. JAVA编程多线程面试常见知识点灵魂拷问(一)
  8. python3数字类型_python3笔记八:python数据类型-Number数字
  9. 如何锻炼一个人处理问题的能力?
  10. 如何修改html中字号大小,css怎么设置字体大小?
  11. 「SDOI2017」树点涂色 解题报告
  12. python3 重写、重用、重载
  13. 算法与数据结构篇(暂未解答)
  14. (最详细)Cloudera Manager安装部署
  15. Dragonfly 三维可视化数据分析处理软件-切片分析工具使用教程
  16. 谷歌收购眼球追踪技术公司Eyefluence,眼动关注度将成为VR的新视角
  17. JAVA计算机毕业设计演唱会购票系统计算机(附源码、数据库)
  18. CentOS 7安装Mongodb并使用Robo 3T远程测试连接
  19. SVPWM发波及其实际应用
  20. Scrapy抓站:大批量下载360指定专题下的照片并保存到sql和本地文件夹下

热门文章

  1. Red-Detector扫描你EC2实例中的安全漏洞
  2. Tomcat8+redis实现session共享
  3. SSH框架调用scrapy爬虫
  4. js中获取当前项目名等
  5. Android开发:《Gradle Recipes for Android》阅读笔记(翻译)2.4——更新新版本的Gradle...
  6. Python_pip_03_安装模块出现错误时咋整
  7. iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )...
  8. 复制移动VMware Workstation虚拟机文件产生的问题【转】
  9. move motorName by|to value units
  10. MyBatis入门使用及其四大核心对象