Bootstrap

【学以致用】android功能实现5---android8.0 Launcher获取快捷方式源码分析(1)

从其他应用往桌面创建快捷方式,android8.0统一采用requestPinShortcut的方式。 对于桌面而言,是怎么从requestPinShortcut获取快捷方式信息在桌面创建快捷方式呢?

 

Android8.0的快捷方式参数不再通过广播传送,而是存放在系统当中。创建快捷方式的应用将信息放入系统,而系统则生成shortcut ID等信息,传入桌面应用。

 

桌面创建快捷方式由两部分完成。

1:获取快捷方式的名字和图标,然后将两者作为快捷方式放到桌面上,提供移动拖拽点击等服务。桌面应用接收ID等数个信息,在桌面创建快捷方式,其中的图片等资源需要桌面通过ID等信息去系统里面获取。

2:放置在桌面上的快捷方式有intent这个参数存入数据库,而intent参数一个核心功能是启动该应用。配置合理的intent并使其能够启动。点击启动应用的时候,也是通过ID等信息,去系统中启动。

 

实际操作流程如下:

首先需要创建一个activity,这个activity会在其他应用调用requestPinShortcut的时候,会在框架中通过一个service

;