android 开机向导
来源:互联网 发布:女生必知护肤技巧冬天 编辑:程序博客网 时间:2024/04/27 05:06
转自:http://blog.csdn.net/thl789/article/details/7803439
Android中很多框架性的设计都已经存在了,但在市场上的发布版本里却因为没有很好的理解Android的设计意图而进行自己的定制,或者自己又做一个冗余的实现。Android中的Provision其实就是类似刚出厂时或者恢复出厂设置之后,一步一步引导用户完成各种设置的Setup Wizard程序。
在Android的原生代码中,Provision并没有被编译进系统,这可能是Provision不被人所知的原因。另外SdkSetup是一个实现相同功能的程序,从名字来看,SdkSetup是被用来在模拟环境中完成初始设置的程序。
Provision在其AndroidManifest.xml中被定义如下:
- <application>
- <activity android:name="DefaultActivity"
- android:excludeFromRecents="true">
- <intent-filter android:priority="1">
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.HOME" />
- <category android:name="android.intent.category.DEFAULT" />
- </intent-filter>
- </activity>
- lt;/application>
Activity DefaultActivity的category被定义成HOME,并且priority为1,是比系统Launcher启动还要早的程序。
Provision中DefaultActivity的实现如下:
- public class DefaultActivity extendsActivity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- // Add a persistent setting to allow other apps to know the device hasbeen provisioned.
- Settings.Secure.putInt(getContentResolver(),Settings.Secure.DEVICE_PROVISIONED, 1);
- // remove this activity from the package manager.
- PackageManager pm = getPackageManager();
- ComponentName name = new ComponentName(this, DefaultActivity.class);
- pm.setComponentEnabledSetting(name,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
- // terminate the activity.
- finish();
- }
- }
DefaultActivity的原生实现只做了两件事:
- 没有UI界面,只是设置Setting项里的Settings.Secure.DEVICE_PROVISIONED为1,指示其他Framework和其他程序,机器已经Provisioned。
- Line#10~#12之后,Launcher才会被启动,完成整个启动过程。
注意:还没有Provisioned的机器,有些功能的表现是不一样的。比如,如果还没有Provisioned,锁屏程序不会锁屏;对HOME key的处理也不同;电话也是打不进来的,etc。
通过Provision,可以定制:
- 加入一些初始设置项的设定,比如时区/时间初始设定,背景数据是否允许,是否允许安装非Android市场上的程序,等不需要用户干预就可以完成的设置。具体也可看SdkSetup中的DefaultActivity完成的设置,除了多了些设置项的设置,并没有太多区别。
- 加入UI设计,引导用户一步步完成需要用户参与选择或输入的设置过程,也就是Setup Wizard的工作。
0 0
- android 开机向导
- android开机向导实现
- android开机向导的实现
- android开机向导的实现
- Android开机向导setupwizard,设置系统语言,WiFi向导
- Android Provision(开机向导setupwizard程序)
- android 开机向导OOBE源码分析
- android MTK 禁止第一次开机向导
- Android M 概率跳不过google开机向导原因分析
- 隐藏Android第一次开机向导(提示气泡)
- Android RRO机制的运用-----google开机向导客制化
- android 开机向导中wifi界面无法跳过,
- 删除Android刷机启动开机向导(气泡提示)
- 开机向导实现原理
- Android4.4开机向导
- 开机向导两三事
- 开机向导的制作思路
- 客制化开机向导符合Google认证要求
- android 媒体库数据更新解决办法
- Axure RP 7.0快捷键 汇总
- vim插件:vhdl插件
- mockito 帮助文档
- Leetcode Anagrams
- android 开机向导
- C++中“在此作用域中尚未声明”的错误解决
- 《数据结构》循环链表类的定义参考代码
- Windows下查看端口占用情况
- HDU 1285 确定比赛名次(拓扑排序)
- SDUTOJ 1291 数据结构上机测试4.1:二叉树的遍历与应用1
- 用vim处理字符的大小写转换
- 恼人的函数指针(一)
- 第七周项目5 求三个数的最大值