Android设备从哪里获取默认时区?
示例 - 您启动了一个全新的Android设备,并且安装向导带有"日期&时间"已选择默认时区的活动(在我的情况下为http://en.wikipedia.org/wiki/Central_European_Time) - 它来自何处?
答案 0 :(得分:7)
这是一个构建标志,它被刻录到ROM中(它变成了系统属性)。
这是在很多地方,所以最简单的方法是下载AOSP源代码和grep:
persist.sys.timezone
这里有更多信息:https://stackoverflow.com/search?q=persist.sys.timezone
答案 1 :(得分:0)
当您使用SIM卡开始新手机时,它会根据操作员自动设置手机中的位置。
如果它正在使用SIM数据,那么基于Telephony Manager API手机,会自动设置当前位置。
同样地,当您的设备没有任何SIM卡但是它连接到任何本地WiFi时,它会根据Wifi Manager API自动设置手机中的位置。
答案 2 :(得分:0)
关于设置时区的帖子很长。 https://blog.csdn.net/victoryckl/article/details/7969433 它是中文,请使用翻译。
这是设置语言环境和时区的要点
原始的android代码,系统默认语言为英文,一般需要更改为默认中文,很多修改方法:
修改PRODUCT_LOCALES字段, 首先输入您要选择的语言,例如:PRODUCT_LOCALES:= zh_CN zh_CN默认语言为英语,从build / target / product / sdk.mk复制它,然后将其粘贴到device / {hardware platform} / {product}中。在mk中,将zh_CN放在首位。或直接粘贴到build / target / product / core.mk中,所有分支都继承此设置。
修改设备/ {硬件平台} / {product} /system.prop或default.prop并添加:
[persist.sys.language]:[zh]
[persist.sys.country]:[CN]
[persist.sys.localevar]:[]
[persist.sys.timezone]:[亚洲/上海]
[ro.product.locale.language]:[zh]
[ro.product.locale.region]:[CN]
- 修改init.rc并添加:
Setproppersist.sys.language zh _
Setproppersist.sys.country CN
Setproppersist.sys.localevar
Setproppersist.sys.timezone亚洲/上海
Setprop ro.product.locale.language
Setprop ro.product.locale.region CN
此方法有问题,因为它将在每次启动时执行,因此该语言是每次启动后的默认语言。
- 修改设备/ {硬件平台} / {产品} /device.mk并添加: PRODUCT_PROPERTY_OVERRIDES + = \
Persist.sys.language = zh \
Persist.sys.country = CN \
Persist.sys.localevar =“” \
Persist.sys.timezone =亚洲/上海\
Ro.product.locale.language = zh \
Ro.product.locale.region = CN
我正在使用第四个。请注意,上面的引号不能删除,否则这两行将在build.prop中变成一行:
Persist.sys.localevar = persist.sys.timezone =亚洲/上海
这将导致无法获取persist.sys.timezone的值,并且时区仍然不正确。
- 修改build / tools / buildinfo.sh:
回声“ persist.sys.language = zh”
回显“ persist.sys.country = CN”
回声“ persist.sys.localevar =”
回声“ persist.sys.timezone = Asia / Shanghai”
回显“ ro.product.locale.language = zh”
回显“ ro.product.locale.region = CN”