Android(安卓)8.1自定义开机向导
在Android设备第一次上电的时候会进行一个国家和语言及搜台的选择,其具体的实现都是在Provision.apk 中实现的,对于Provision.apk 这个apk 应用大家可能比较陌生,它位于Android目录的packages\apps/下,它的主要作用是作为开机引导用户进行一些基本设置.在原生的 android 系统中,provision非常的简单,只有一个空白的 activity,这个主要就是留给 厂商自己定制开机向导(像 OPPO,VIVO,小米等厂商会让你登陆和注册其账号帐号,连接WiFi等),因此我们得理解Android的设计意图而进行定制.,它只会在升级和恢复出厂设置的时候被调用。
我们先看AndroidManifest.xml。就一个DefaultActivity,DefaultActivity是原生系统Provision中唯一的activity;配置了category.HOME属性,category.HOME是桌面程序的标记(Launcher程序都会配置);priority=1,配置优先级,这样就会在系统的Launcher之前启动.
Provision中的关键代码:
这里代码主要设置DEVICE_PROVISIONED标记同时禁止本身Activity组件的功能
API:
void setComponentEnabledSetting (ComponentName componentName, int newState, int flags)
componentName:组件名称
newState:组件新的状态,可以设置三个值,分别是如下:
不可用状态:COMPONENT_ENABLED_STATE_DISABLED
可用状态:COMPONENT_ENABLED_STATE_ENABLED
默认状态:COMPONENT_ENABLED_STATE_DEFAULT
flags:行为标签,值可以是DONT_KILL_APP或者0. 0说明杀死包含该组件的app
若要定制自定义的开机向导,则只需要在DefaultActivity中加入自定义的内容,再调用finishSetupWizard()方法把它关掉即可。
以下是我写的一个小dome:https://download.csdn.net/download/qq_32390877/10574773
更多相关文章
- android绘图Paint.setXfermode()和Canvas.saveLayer()方法的作用
- AndroidUI设计之 布局管理器 - 详细解析布局实现
- Android利用Fiddler进行网络数据抓包
- 以一个小程序设计来入门Android
- Android(安卓)8.0 SystemUI下拉状态栏快捷开关
- Android(安卓)Studio的TextView实现滚动显示文字
- Android系统中的ROOT和System权限的区别
- 【多图】Google工程师解析Android系统架构
- Android系列教程之六:TextView小组件的使用--附带超链接和跑马灯