在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

 

更多相关文章

  1. android绘图Paint.setXfermode()和Canvas.saveLayer()方法的作用
  2. AndroidUI设计之 布局管理器 - 详细解析布局实现
  3. Android利用Fiddler进行网络数据抓包
  4. 以一个小程序设计来入门Android
  5. Android(安卓)8.0 SystemUI下拉状态栏快捷开关
  6. Android(安卓)Studio的TextView实现滚动显示文字
  7. Android系统中的ROOT和System权限的区别
  8. 【多图】Google工程师解析Android系统架构
  9. Android系列教程之六:TextView小组件的使用--附带超链接和跑马灯

随机推荐

  1. Android大厂面试题锦集(BAT TMD JD 小米)
  2. Android滤镜效果实现及原理分析
  3. android 4.2的新特性layoutRtl,让布局自动
  4. Ice Cream Sandwich 為 Android 相機和相
  5. android用ClipDrawable自定义各种进度条(
  6. android Intent常用介绍
  7. Android判断设备网络连接状态,并判断连接
  8. 華碩董座施崇棠漫談筆電、平板、Netbook
  9. Roboto 字體以及 Android(安卓)4.0 Ice C
  10. 终结者:电脑显示Android手机屏幕之asm.jar