欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android 定制Google SetupWizard

程序员文章站 2024-01-09 23:34:16
...

Android 定制Google SetupWizard

google setupwizard(开机向导) 是可以定制,我们可以替换掉里面的页面,也可以新添加页面,也可以修改原有页面的部分资源。

修改方法有两种:

1.利用Runntime Resource Overlay(RRO)机制来替换setupwizard里面的资源
2.实现指定的BroadcastReceiver,新增页面也能在该应用中实现

下图为修改过和添加的页面:
Android 定制Google SetupWizard
修改过背景的欢迎页面
Android 定制Google SetupWizard
添加的页面
Android 定制Google SetupWizard
google 原先页面

下面看如何修改:

google SetupWizard 是通过res/xml/ 目录下的 wizard_script.xml (有多个配置文件)来加载页面和跳转的而两种修改方式都是通过修改wizard_script 来实现的
下面是wizard_script 的一个脚本片段是一个sim missing page

 <WizardAction wizard:uri="intent:#Intent;action=com.android.setupwizard.SIM_MISSING;end" id="sim_missing">
        <result wizard:action="carrier_setup" />
  </WizardAction>
id 是定义了当前页面的表示 当其他页面要跳到此页面是就通过该id
result 是指此页面后要跳的页面id

接下来我们来追加自己的页面

    <!--添加页-->
   <WizardAction
        id="nuu_setup"  
        wizard:uri="intent:#Intent;action=action.NUU_SUW;end">
        <result wizard:action="sim_missing" />
    </WizardAction>
    <!---->
    <WizardAction
        id="sim_missing"
        wizard:uri="intent:#Intent;action=com.android.setupwizard.SIM_MISSING;end">
        <result wizard:action="carrier_setup" />
    </WizardAction>

我们将重新修改后的文件放到我们的apk的目录下 直接放到对应的目录下就可以了
也可以通过:

    <string name="wizard_script_uri">android.resource://package name/xml/wizard_script</string>

来指定脚本指向

下面都说下两种方式:
第一:通过overlay方式 (关于对RRO不懂可另行搜索)
目录结构:
Android 定制Google SetupWizard

manifest的内容如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.google.android.setupwizard.overlay">

    <overlay
        android:priority="1"
        android:targetPackage="com.google.android.setupwizard" />
</manifest>

strings.xml 是重新定位脚本的位置

<resources>
    <string name="wizard_script_uri">android.resource://com.google.android.setupwizard.overlay/raw/wizard_script</string>
</resources>

第二种方式:
通过实现:

   <receiver android:name=".receiver.PartnerReceiver">
            <intent-filter>
                <action android:name="com.android.setupwizard.action.PARTNER_CUSTOMIZATION" />
            </intent-filter>
        </receiver>

PartnerReceiver是不需要什么内容 只用于google查找
修改方式一样
Android 定制Google SetupWizard

相关标签: Setupwizard