在Android开发中,客户想要设置比如WIFI热点,密码,WIFI直连名称等默认值,在Android 13以前是很好修改的,但是对于要用GMS服务的话,在Android13 以后很多都被Google给闭源了,比如以Google Mainline的形式发布,就算是它闭源了,我们也总有设置它的办法,所谓条条大路通罗马,所以我们在第一次开机时用代码重新设置一遍值,这样用户也无感,我们也实现了客户的需求,也不会影响GMS的认证,所以我们只需找到设置默认值的代码即可。
一,判断第一次开机时发送广播
这里为什么用广播呢?因为广播发送与接收都很简单,用bindService的话也是可以的,还有一个原因是我们需要在有权限设置默认值的进程去执行默认值代码,以防其他权限上的修改。
我们肯定不能是接收开机广播再去修改默认值,因为开机广播会有很多地方都会去接收,势必会造成堵塞,最好的话是在Launcher起来时发送广播,在SystemUI起来时也可以(这样会更早的去修改)。
下面以设置WLAN热点默认名称为例,所以我们需要修改文件
packages/apps/Launcher3/src/com/android/launcher3/Launcher.java
在onCreat中发送广播,增加如下代码
<