转自:http://blog.csdn.net/xubin341719/article/details/7621126
问题:
今天有个客户,让在桌面建一个图标,点击链接到他们公司的网址,以前做过应用程序快捷方式,默认放在桌面上,如:android 创建桌面快捷方式 、插件,没做过去链接网址。
考虑方法:
(1)、做个小的应用,调用系统浏览器,写入固定网址;
(2)、把网址做进桌面default的值。
显然第二种方案简单些,在网上也找到这种方法,如下:
一、读取桌面图标
/packages/apps/Launcher/res/xml/default_workspace.xml中记录了系统初始化或者恢复出厂设置时桌面上图标的排列。Launcher程序第一次运行完毕以后,会在/data/data /com.android.launcher/databases/launcher.db中创建记录,里面有所有当前的桌面图标。以后每次启动只会从这里读取桌面图标。
二、default_workspace.xml分析default_workspace.xml 中,支持的标签有:
favorite: 应用程序快捷方式。
shortcut: 链接,如网址,本地磁盘路径等。
search: 搜索框。
clock: 桌面上的钟表Widget
支持的属性有 :
launcher:title: 图标下面的文字,目前只支持引用,不能直接书写字符串;
launcher:icon: 图标引用;
launcher:uri: 链接地址;这个是主角,链接网址用的。
launcher:packageName: 应用程序的包名;
launcher:className :应用程序的启动类名;
launcher:screen: 图标所在的屏幕编号;
launcher:x: 图标在横向排列上的序号;
launcher:y: 图标在纵向排列上的序号;
LauncherProvider.java里面的loadFavorites方法负责解析。
三、关于网络链接的解决方法
- <shortcut
- launcher:title="@string/baidu"
- launcher:icon="@drawable/baidu"
- launcher:uri="http://www.baidu.com"
- launcher:screen="1"
- launcher:x="0"
- launcher:y="3" />
链接的图标内容和文字内容是从 default_workspace.xml 中获取到的。
应用程序的图标内容和图标下面的文字内容都是从PackageManager中获取到的。
如果Launcher启动时,应用程序的包名和类名因为某种原因没有在PackageManager中找到,桌面就不会显示它的图标。如果类名和包名找到了,但是图标没有找到,会显示Android默认的小机器人图标。
所以,要在 default_workspace.xml 中加入锭接时,只要写上title,icon,uri,screen,x,y这几个属性就可以了。
而要加入应用程序时,只要写上packageName,className,screen,x,y这几个属性就可以了。