前面一篇文章在Android12 基础上已经分析了开机向导定制方案,这里再以实际案例在Android13 上面从另外一个思路来实现需求
去掉开机向导里面的SIM模块,Tel相关的全部去掉:比如 SIM 检测界面、紧急呼叫入口和界面
备注:在上一篇笔记中已经提到了思路,其实是无法去掉SIM界面和Tel 相关的,限制太多了。
下面我们从另外的角度来解决这个问题,换一个方向思考并解决问题。 去feature
高通C6490 android13 GMS 认证之CtsCarrierApiTestCases
附件WIFI——Only图片:MTK提供的WIFI Only方案
附件:FiseSetupWizard 自定义的一个开机向导源码
附件:CusSetupWizard 自定义的一个完整的开机向导原码
附件下载地址
- 附件 两个开机向导可以直接放到系统里面进行编译,去掉平台自带的开机向导,然后在已有开机向导源码基础上更改。【比较早的开机向导,UI不咋样】
- 在开机向导源码的基础上,分析已有部分的逻辑,针对性再定制自己需求,反推思考逻辑和业务,看能否实现自己定制的需求。
- WIFI-Only图片,为平台提供的WIFI Only部分修改点,可以借鉴。
- 特别提醒,不同平台和不同版本,以及
手机和平板方案区别是很大的。所以,参考即可。【这里重点提一下,如果您的方案是手机方案,是无法实现更改为WIFI Only方案的】
上面方案一去系统的feature ,经验上看,对于平板方案按照这个思路来更改是没有问题的,但是对于手机方案来做的平板产品来讲,是无法去除成功的,所以如果你是手机方案的大屏产品。无论怎么去就是去不掉。 如果从驱动层来去除feature+moden,将4G全部去掉又会发现各种报错。
还是先参考下 两套开机向导的源码吧,这里我们举例其中一个开机向导Sim界面的源码来参考 系统开机向导 可能存在的判断逻辑。
SimMissingActivity 判断跳过逻辑
如果当前 不支持SIM 或者 没有Tel模块,那么就下一页
SetupWizardUtils 判断SIM 、 hasSystemFeature FEATURE_TELEPHONY
PackageManager.FEATURE_TELEPHONY
packageManager 是一个抽象类,最终走到ApplicationPackageManager.java 实现类里面的 hasSystemFeature 方法,具体源码跟踪可以自行跟踪一下。