Android 6.0 平台,如何更改系统日期默认格式及锁屏界面和下拉状态栏日期格式修改
展讯Android_6.0平台,Settings模块 Date & Time 选项下,去掉了日期默认格式的选项即:MM-dd-yyyy及dd-MM-yyyy和yyyy-MM-dd三种格式;现客户需求是:”dd-MM-yyyy”。
好了,各种曲折就不说了,干货来。
个人认为:日期默认格式主要体现在:(1)开机向导中Date & Time 日期格式;(2)锁屏界面及下拉状态栏,日期格式显示。
一、开机向导中Date & Time 项,日期格式要求:”dd-MM-yyyy”
(1).修改点:External/icu/icu4c/source/data/locales/ 目录下 en.txt 文件
此项修改是针对在默认英语语言环境下,开机向导开机Date & Time的选项。
修改点:
1). 修改资源文件en.txt。
gregorian{
……….
DateTimePatterns{
……………
“EEEE, MMMM d, y”,
“MMMM d, y”,
“MMM d, y”,
– “M/d/yy”,
+ “d/M/yy”,
“{1}, {0}”,
……………
如需要修改其他语言环境下的格式(如中文)请修改同目录下的zh.txt文件中相同位置(允许我复制一段代码)。
2). 修改en.txt文件后,编译出 xxx.dat文件
如何编译,方法如下:
a). 合入external/icu里的修改后进入到 external/icu/icu4c/source目录执行makeData.sh脚本。
【即在external/icu/icu4c/source下执行 sh makeData.sh 命令】(此命令会修改external/icu/icu4c/source/stubdata/icudt53l.dat文件)
b). 执行完命令后 快速验证的方法为把external/icu/icu4c/source/stubdata/下icudt53l.dat的文件push到手机的system/usr/icu目录下重启手机即可验证)
【命令:adb push icudt53l.dat system/usr/icu
adb reboot】如何push不成功,就直接全编译把,不要纠结,因为有时在服务器上,是没有权限的,adb remount 不会成功,所以不要一
直纠结在这里。
到这里,第一步修改开机向导,日期格式修改已经成功,但是还不够,因为锁屏界面和下拉状态栏仍然是系统默认的格式。
二、锁屏界面和下拉状态栏显示”dd-MM-yyyy”
(1).修改锁屏界面
a. 修改文件点:framework/base/packages/Keyguard/src/com/android/keyguard/keyguardStatusView.java
private static final Class Patterns{
……….
static void update(Context context,boolean hasAlarlm){
//对dateView 进行截取,直接修改为:dateView = “EEEE, d MMMM”(d前面和后面都有一个空格,这样显示会更加美观)
……….
if (key.equals(cacheKey)) return;
dateView = DateFormat.getBestDateTimePattern(locale, dateViewSkel);
dateViewdateView = “EEEE, d MMMM”;
……….
(2).修改下拉状态栏
b.修改文件点:framework/base/packages/SystemUI/src/com/android/systeui/startubar/policy/DateView.java
……….
protected void updateClock() {
if (mDateFormat == null) {
final Locale l = Locale.getDefault();
– final String fmt = DateFormat.getBestDateTimePattern(l, mDatePattern);
//截取fmt
+ String fmt = DateFormat.getBestDateTimePattern(l, mDatePattern);
+ fmt = “EEEE, d MMMM“;
mDateFormat = new SimpleDateFormat(fmt, l);
……….
}
好了,到这里应该就基本完成任务了,如何需要在锁屏界面日期年份,可以查阅资料,在资源文件中更改就可以了,具体哪个资源文件,可以百度一下
,会很容易得到答案。