我现在要实现这样一个功能,就是我自己定制了一个桌面应用,最后要和原生的Launcher共存,通常情况下,如果系统存在多个桌面应用,点击home后会弹出对话框让用户选择启动哪个桌面,现在要求不弹出这个对话框,直接默认启动自定义的桌面,怎么实现这个功能?
通过设置默认选项这个方法大家就别说了,我想要的是怎么修改源码,包括framework,不让用户选择而直接启动自定义桌面。
通过设置默认选项这个方法大家就别说了,我想要的是怎么修改源码,包括framework,不让用户选择而直接启动自定义桌面。
如果只需要修改默认静态壁纸,替换frameworks/base/core/res/res/drawable/default_wallpaper.jpg即可,或者在源码中修改对应default_wallpaper地址.
修改动态壁纸:在frameworks/base/core/res/res/values目录找到Config.xml文件,最后一行有定义:
<string name="default_wallpaper_component">null</string>
将其修改为对应的live wallpaper的启动component即可。
静态的图片壁纸和live wallpaper是两个系统,加载的时候是完全两套机制,静态图片通过launcher里面的一个xml文件配置来管理系统默认静态壁纸,live wallpaper则是通过intent机制向系统搜寻所有匹配Activity,所以,这里的默认值为null,而不是那个系统默认静态壁纸的地址,系统是读config.xml文件的设置,若为null才继续查找静态壁纸配置内容.
不过可以提供你看源码的方法:
从资源开始找代码:
例如:点击home如果launcher多的话就会弹出一个框,框上有图片和文字,然后去源码的对应资源文件夹下找资源,然后ctrl + h再找在哪里用的。
一步步的就欧了。