今天有个客户,让在桌面建一个图标,点击链接到他们公司的网址,以前做过应用程序快捷方式,默认放在桌面上,如:android 创建桌面快捷方式 、插件,没做过去链接网址。

考虑方法:

(1)、做个小的应用,调用系统浏览器,写入固定网址;

(2)、把网址做进桌面default的值。

显然第二种方案简单些,在网上也找到这种方法,如下:

一、读取桌面图标 

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方法负责解析。





[html]  view plain copy



  1. <favorite  
  2.        launcher:className="com.android.camera.Camera"  
  3.        launcher:packageName="com.android.camera"  
  4.        launcher:screen="2"  
  5.        launcher:x="3"  
  6.        launcher:y="3"/> 
  7. <favorite  
  8.        launcher:className="com.android.calendar.LaunchActivity"  
  9.        launcher:packageName="com.android.calendar"  
  10.        launcher:screen="2"  
  11.        launcher:x="1"  
  12.        launcher:y="3"/> 
  13. <favorite  
  14.        launcher:className="com.cooliris.media.Gallery"  
  15.        launcher:packageName="com.cooliris.media"  
  16.        launcher:screen="2"  
  17.        launcher:x="2"  
  18.        launcher:y="3"/> 
  19.  
  20. <favorite  
  21.        launcher:className="com.android.deskclock.DeskClock"  
  22.        launcher:packageName="com.android.deskclock"  
  23.        launcher:screen="2"  
  24.        launcher:x="0"  
  25.        launcher:y="3"/> 



改动前后效果如下所示:


三、关于网络链接的解决方法

 

       应用程序的写法, default_workspace.xml 中有很多,对链接的写法却没有,我分析了一下它的解析程序,反向做出了链接快捷方式的写法,已经验证成功,希望可以帮到大家。

[html]  view plain copy


  1. <</span>shortcut 
  2.        launcher:title="@string/baidu" 
  3.        launcher:icon="@drawable/baidu" 
  4.        launcher:uri="http://www.baidu.com" 
  5.        launcher:screen="1" 
  6.        launcher:x="0" 
  7.        launcher:y="3"/> 


链接的图标内容和文字内容是从 default_workspace.xml

中获取到的。

应用程序的图标内容和图标下面的文字内容都是从PackageManager中获取到的。

如果Launcher启动时,应用程序的包名和类名因为某种原因没有在PackageManager中找到,桌面就不会显示它的图标。如果类名和包名找到了,但是图标没有找到,会显示Android默认的小机器人图标。

所以,要在 default_workspace.xml

中加入锭接时,只要写上title,icon,uri,screen,x,y这几个属性就可以了。

而要加入应用程序时,只要写上packageName,className,screen,x,y这几个属性就可以了。


       今天有个客户,让在桌面建一个图标,点击链接到他们公司的网址,以前做过应用程序快捷方式,默认放在桌面上,如: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方法负责解析。




[html]  view plain copy


  1. <favorite  
  2.        launcher:className="com.android.camera.Camera"  
  3.        launcher:packageName="com.android.camera"  
  4.        launcher:screen="2"  
  5.        launcher:x="3"  
  6.        launcher:y="3"/> 
  7. <favorite  
  8.        launcher:className="com.android.calendar.LaunchActivity"  
  9.        launcher:packageName="com.android.calendar"  
  10.        launcher:screen="2"  
  11.        launcher:x="1"  
  12.        launcher:y="3"/> 
  13. <favorite  
  14.        launcher:className="com.cooliris.media.Gallery"  
  15.        launcher:packageName="com.cooliris.media"  
  16.        launcher:screen="2"  
  17.        launcher:x="2"  
  18.        launcher:y="3"/> 
  19.  
  20. <favorite  
  21.        launcher:className="com.android.deskclock.DeskClock"  
  22.        launcher:packageName="com.android.deskclock"  
  23.        launcher:screen="2"  
  24.        launcher:x="0"  
  25.        launcher:y="3"/> 


改动前后效果如下所示:


三、关于网络链接的解决方法

   

     应用程序的写法, default_workspace.xml 中有很多,对链接的写法却没有,我分析了一下它的解析程序,反向做出了链接快捷方式的写法,已经验证成功,希望可以帮到大家。

[html]  view plain copy


  1. <</span>shortcut 
  2.        launcher:title="@string/baidu" 
  3.        launcher:icon="@drawable/baidu" 
  4.        launcher:uri="http://www.baidu.com" 
  5.        launcher:screen="1" 
  6.        launcher:x="0" 
  7.        launcher:y="3"/> 


链接的图标内容和文字内容是从 default_workspace.xml 中获取到的。

应用程序的图标内容和图标下面的文字内容都是从PackageManager中获取到的。

如果Launcher启动时,应用程序的包名和类名因为某种原因没有在PackageManager中找到,桌面就不会显示它的图标。如果类名和包名找到了,但是图标没有找到,会显示Android默认的小机器人图标。

所以,要在 default_workspace.xml 中加入锭接时,只要写上title,icon,uri,screen,x,y这几个属性就可以了。

而要加入应用程序时,只要写上packageName,className,screen,x,y这几个属性就可以了。