在做手机或者机顶盒等方案的时候,有时候客户会要求要开机向导,首先解释一下我对开机向导的理解:
开机向导就是手机第一次开机,要设置的一些系统参数,当下次开机的时候就不需要用开机向导。
整理这段功能的大概思路:
开机起来要显示开机向导的实现方式有两种,
1.监听开机广播,并且把广播接收的优先级设置的高点,在接收到广播的时候,跳转到向导的activity,设置系统的一些常用选项,比如语言,网络,字体大小等等。
监听广播注意要加权限。
2.作为Home,系统的第一个启动app,但是要想先启动这个home,就要在AndroidManifest中的activity设置优先级高一些,这样盒子起来就会优先选择这个home,
这个home要显示的就是开机向导的页面。
那么还得实现当这些数据保存后,要关闭开机向导,并且保证下次开机不需要开机向导。经过查找资料我找到的方法就是,当设置完成后,点击“完成”按钮的时候,通过
PackageManager pm = getPackageManager();
ComponentName name = new ComponentName(this, BootActivity.class);
pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
finish();
将当前的activity或者广播禁用掉,这样以后开机就不会再出现开机向导了,finish();关闭当前进程。
里边涉及到的开机广播和setComponentEnabledSetting禁掉组件的方法,不明白的朋友可以上网查一下,网上很多,我就不再赘述了。