开机SetupWizard界面时区显示异常

一、问题现象

1.开机进入设置向导-》时间和日期界面
2.查看默认时区为"GMT+01:00,GMT+00:00",与VDF的需求不一致-》KO

EXPECTED BEHAVIOUR:
OK:"(GMT) Greenwich Mean Time: Dublin, Lisbon, London"
如果定制Dublin,应该显示"Dublin"的时区,如Dublin GMT+01:00

二、问题分析

FWK分析如下,
String zoneNameString = getZoneLongName(locale, tz, now); 这里的 zoneNameString即是后面显示的timezoneName,在getZoneLongName方法有注释说明,
private static String getZoneLongName(Locale locale, TimeZone tz, Date now){

boolean daylight = tz.inDaylightTime(now);

// This returns a name if it can, or will fall back to GMT+0X:00 format. return 
tz.getDisplayName(daylight, TimeZone.LONG, locale);

}
此处调用了TimeZone.java中的getDisplayName方法,在此方法之前同样有相关注释:

* If the name is not available, the result is in the format

* {@code GMT[+-]hh:mm}.

另外在SetupWizard界面dumpsys activity,
Hist #4: ActivityRecord{d95a9cd u0 com.android.settings/.DateTimeSettingsSetupWizard t3}

Intent { act=com.android.setupwizard.DATE_TIME flg=0x4000000 
cmp=com.android.settings/.DateTimeSettingsSetupWizard (has extras) }

ProcessRecord{5bb5e1f 8887:com.android.settings/1000}
发现并非Google官方的SetupWizard,而在flash3等官方的SetupWizard界面中,
Hist #3: ActivityRecord{ecb98d9 u0 
com.google.android.setupwizard/.DateTimeSetupActivity t3}

Intent { act=com.android.setupwizard.DATE_TIME flg=0x4000000 
cmp=com.google.android.setupwizard/.DateTimeSetupActivity (has extras) }

ProcessRecord{e01a17e 3254:com.google.android.setupwizard/u0a96}
选择时区的地方也不是包含所有城市,Google在处理的时候已经说明result可为 null,为null的时候则显示GMT[+ -][hh:mm]格式,

三、解决方案

如果需要解决描述中的问题,建议com.android.settings/.DateTimeSettingsSetupWizard在选择时区 zongName为 空的时候做一些改动,请知悉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值