安卓开机引导(向导)页面,类似google开机设置引导
2017-05-22 16:49
274 查看
前言
开机引导页面,相信大家都不陌生吧,对了!就是想你想象中手机刚开始开机的时候出来的引导页面.前段时间公司出了个需求需要手机销售数据和统计用户信息,本人也是在各种百度信息最后经过几番折腾才解决这个问题.特地写下来就当学习笔记吧.原理是仿写 SetupWizard 这个app的.
先说需求:
类似这个引导页的.
为什么会这样做呢,主要是一些商家需要手机信息但又不想用户反感直接在gg后面显示的吧.
先说说开机引导的原理:
在安卓机加载完linux内核后手机会进行一系列的初始化流程,别的我们不说,我们只要知道在系统的pakemanger 加载完所有的系统的apk后就会跳到launcher 也就是手机的桌面.实际上google的设置引导语言选择都是这种launcher的app.但是优先级比默认的launcher高,launcher默认0
例如 priority=4
如图
<activity android:name=".xxxxx" android:clearTaskOnLaunch="true" android:configChanges="keyboardHidden|orientation|screenSize" android:excludeFromRecents="true" android:launchMode="singleInstance"> <intent-filter android:priority="4"> </intent-filter> </activity>
那么我们只需要把一个应用设置优先比默认launcher高就可以了.
肯定有人想问怎么把app设置为Launcher吧,嘿嘿往下看
<activity android:name=".xxxxx" android:clearTaskOnLaunch="true" android:configChanges="keyboardHidden|orientation|screenSize" android:excludeFromRecents="true" android:launchMode="singleInstance"> <intent-filter android:priority="4"> <action android:name="android.intent.action.MAIN"></action> <category android:name="android.intent.category.LAUNCHER"></category> <category android:name="android.intent.category.DEFAULT"></category> <category android:name="android.intent.category.HOME"></category> </intent-filter> </activity>
是不是很简单,直接而在intent-filter 配置以上参数就可以了,最后吧这个app内置为系统软件就可以了,这个可以自己选择刷root进去,或者让厂商帮你放进去.这样下次首次开机向导页面就出来了.页面都是跟你平时使用activity帮顶页面一样.
其实所谓的launcher其实也就是一款普通的app软件.
是不是觉得这样就完了呢,还差最后一步呢,在app启动之后记得在ondestory()的方法吧这个activity页面销毁设置为不可见,不然会卡在这个页面,就算跳过去了下次开机或者返回桌面还会显示出来,这就是极度不好的体验了.
奉上 代码:
try { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { Settings.Global.putInt(getContentResolver(), Settings.Global.DEVICE_PROVISIONED, 1); } Log.e("finishSetupWizard", "finishSetupWizard2"); } catch (Exception e) { e.printStackTrace(); } finally { PackageManager pm = getPackageManager(); ComponentName name = new ComponentName(this, FlystatisticsMainActivity.class); pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); Log.e("finishSetupWizard", "finishSetupWizard3"); this.finish(); }
以上就是开机引导(向导)的实现了!
最后:有疑问的朋友随时联系我 q:759560522
end!
相关文章推荐
- 安卓开机引导(向导)页面,类似google开机设置引导
- 安卓开发设置引导页面只显示一次
- Google开机向导设置锁屏界面title栏间隔修改
- android tips—开机引导启动wifi设置
- 设置nginx让baidu,google等爬虫抓取不同语言的页面
- 设置VMware随系统开机自动启动并引导虚拟机操作系统
- Android 应用第一次运行时,引导页面的设置方法(只让程序Acitivity运行一次的设置方法)
- linux引导流程(开机过程)和时钟设置
- eclipse向导页面设置页面改变事件
- 设置VMware随系统开机自动启动并引导虚拟机操作系统
- 安卓应用如何设置为开机自启动?如果自启动失败如何处理?
- 安卓设置页面设计
- 如何使用ASP制作类似安装向导的页面?
- 类似 Google Tips 页面的卡片式提示和翻转特效
- 设置VMware随系统开机自动启动并引导虚拟机操作系统
- 类似 Google Tips 页面的卡片式提示和翻转特效
- 如何在Google翻译页面的URL中设置翻译语言
- 类似Google个性首页的页面自定义拖拽布局
- 设置VMware随系统开机自动启动并引导虚拟机操作系统
- 设置VMware随系统开机自动启动并引导虚拟机操作系统