美文网首页
Android开机向导页开发

Android开机向导页开发

作者: 飞飞飞_Android | 来源:发表于2017-07-19 20:34 被阅读0次

客户需求:设计开机向导页紧跟着Google SetupWizard,并实现apk管控的一些功能.

如何设置开机向导页

AMS中通过寻找带有<category android:name="android.intent.category.HOME" />标记的activity作为home应用启动,例如手机Launcher应用,Google SetupWizard应用.

同样拥有home属性,Google SetupWizard应用为何出现在Launcher前面?

看完android:priority的作用就明白了

  1. 优先级的概念用于描述控件的 intent的filter的类型。 这个属性只对activity 和 receivers 是有意义的。
  2. 隐式调用activity的情况下: 如果多个activity 满足响应 的条件,系统优先触发 priority 高的那个activity。
  3. 有序广播发出的情况下:如果多个receiver满足响应的条件,系统会优先触发prioriyt高的那个receiver。
  4. priority 必须是整数,默认是0 范围是[-1000, 1000]

然后开机向导页面只在首次开机时会出现,如何实现?
下面介绍一种禁用四大组件的办法:

  mContext.getPackageManager().setComponentEnabledSetting(new ComponentName("包名","类名"),PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
                        PackageManager.DONT_KILL_APP);

这里调用了 setComponentEnabledSetting(ComponentName component,int newState, int flags);
抽象方法在Packagemanager,实现在ApplicationPackageManager,然后通过binder调用到pms里的该方法实现.
该方法可以用于设置四大组件的状态,api解释如下:
* Set the enabled setting for a package component (activity, receiver, service, provider).
* This setting will override any enabled state which may have been set by the component in its
* manifest.
参数含义如下:
componentName:组件名称
newState:组件新的状态,可以设置三个值,分别是如下:
不可用状态:COMPONENT_ENABLED_STATE_DISABLED
可用状态:COMPONENT_ENABLED_STATE_ENABLED
默认状态:COMPONENT_ENABLED_STATE_DEFAULT
flags:行为标签,值可以是DONT_KILL_APP或者0。 0说明杀死包含该组件的app

相关文章

网友评论

      本文标题:Android开机向导页开发

      本文链接:https://www.haomeiwen.com/subject/rlglkxtx.html