Android Provision (Setup Wizard)

田海立@CSDN

2012-7-30

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> </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的原生实现只做了两件事:

真正的爱,应该超越生命的长度心灵的宽度灵魂的深度

Android Provision (Setup Wizard)

相关文章:

你感兴趣的文章:

标签云: