你的位置:首页 > 操作系统

[操作系统]关于Android定制Launcher


 

  好久没有做Adroid项目开发了,临时需要开发一个APK.

  客户要求该APK作为launcher存在,折腾了一些时间,特此记录以免忘了。

按照网络上的要求,添加

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.HOME" />

  此时按Home,确实能出现选择launcher的对话框,但是勾选了默认后,重新开机缺省仍然是原来的launcher.

呆了,赶紧上网搜索方案。

  其中大家说的比较多的方案是,增加SET_PREFERRED_APPLICATIONS权限,

  可这个需要用终端认证信息签名才行,

  我开发的只是APK,纯第三方,不该依赖终端, 果断放弃这个方案尝试。

  突然想起以前用过第三方桌面的,赶紧下了个Go桌面,真的能变成缺省的launcher,看来别人都是没问题。

我的跟Go,到底差别在哪里?反编译Go桌面,复杂的,也看不出来啥。

  灵光一闪,刚开机时弹出来的选择框有Go桌面但是没有我的APK,这个到底是为啥呀。

抓日志查看,搜索"scan package",嗯,找到了原launcher跟go,但是没有我的APK, 那我的APK在哪,

继续往下查看, 原来我的APK在SD卡的。尝试将我的APK移到内部存储中,居然真的成功了,开机就是我的APK了。

  这就简单了,在配置文件中加入缺省安装路径选项就行。

  android:installLocation="internalOnly"

 

  终于,大功告成了,这么个小东西也折腾了好一阵子,看来太久没用都生疏了。

 

补充:

作了Launcher后,main menu上就不见了,这好像也不合适,最好再加一个空的activity (接收Launcher过滤)跳转到之前的activity.

实现就不啰嗦了,只是别忘了加上

android:launchMode="singleTask"