我尝试了修改代码(/dalvik/libcore/luni/src/main/java/java/util/Locale.java),改变了 locale 的默认值,但是没有效果。
请问如何设置默认位置?
*我想制作一个 Android 映像,然后将其烧录到设备上,当 Android 第一次启动时,我希望其操作系统的语言不是英语,而是另一种语言。
感谢您的回复。
我已经找到了修改默认语言的方法。
只需要修改 file(build/core/Makefile)
文件。
将 PRODUCT_DEFAULT_LANGUAGE
和 PRODUCT_DEFAULT_REGION
设置为您想要的语言和地区即可。
我通过 build/target/product/core.mk 帮助客户进行构建。
示例:
PRODUCT_PROPERTY_OVERRIDES := \ ro.config.notification_sound=OnTheHunt.ogg \ ro.config.alarm_alert=Alarm_Classic.ogg \ ro.config.ringtone=BirdLoop.ogg \ persist.sys.language=zh \ persist.sys.country=CN \ persist.sys.timezone=Asia/Shanghai
你已经查看过这部分了吗?
private Locale() {
languageCode = "en"; //$NON-NLS-1$
countryCode = "US"; //$NON-NLS-1$
variantCode = ""; //$NON-NLS-1$
}
它从Locale.java的第212行开始。这是您设置默认值的部分吗?如果是,请将该部分发布以便我可以检查它。
编辑:实际上,如果您可以在Pastebin上发布整个Locale.java。 http://pastebin.com/
使用 java.util.locale
并使用方法 getISOcounty
、getISOLanguage
等等...
要了解更多详细信息,请查看 http://developer.android.com/reference/java/util/Locale.html
最简单的方法可能是在启动前插入本地 SIM 卡。但在我的情况下,即使那样时区也不会自动设置。
在 build/target/product/full_base.mk
中将基本语言环境添加到 PRODUCT_LOCALES
的顶部,如下所示:
PRODUCT_LOCALES := de_DE
通过 Makefile 设置默认时区对我无效,但在 SetupWizard 中硬编码它有效。
因此,请将 packages/apps/SetupWizard/src/org/lineageos/setupwizard/DateTimeActivity.java
中的第 84 行更改为
mCurrentTimeZone = TimeZone.getTimeZone("Europe/Amsterdam");
而不是:
mCurrentTimeZone = TimeZone.getDefault();
首先浏览列表,查看有哪些可用的时区!