Android4.0中定制系统Settings默认值
对于系统研发的工程师来说,定制系统默认值是不可避免的,在Android中Setings,和提供默认值的SettingsProvider是两个单独模块。很明显要定制Settings的默认值,很重要的一个操作就是在SettingsProvider中进行。
SettingsProvider的位置:
Frameworks/base/packages/SettingsProvider
一般情况下对于默认值的设置都在
Frameworks/base/packages/SettingsProvider/res/values/defaults.xml中进行。
比如常见的
<boolname="def_auto_time">true</bool> //是否自动确定日期和时间
<boolname="def_auto_time_zone">true</bool> //是否自动确定时区
等等。
如果要添加一个在defaults.xml没有指定的默认值,可参照如下设置时间格式的例子来进行。
参考实例:Android4.0设置默认系统时间格式12或者24
第一步:修改xml文件:
在frameworks/base/packages/SettingsProvider/res/values/default.xml文件里面添加
<integername="def_time_12_24">24</integer>
然后把自动确定时间设置为false
<boolname="def_auto_time">false</bool>
第二步:修改java文件
文件位置:frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java。
在privatevoidloadSystemSettings(SQLiteDatabasedb)方法里面加上下面代码:
loadSetting(stmt, Settings.System.TIME_12_24,R.integer.def_time_12_24);
之后即可。
注意点:对于设置默认值也可以在Settings应用的代码中进行,但是这对于整个工程来说,会造成管理混乱,是不可取的一种方法。最好还是遵循Android的构架,根据google提供的规则来进行设置和添加。