1

我使用 Locale.getDefault.getDisplayLanauge() 来获取语言代码,但我得到了“hd”。我不知道它是什么。我想它应该是“en”。

有人可以给我一个提示,为什么它默认为“hd”,这是什么意思?

4

1 回答 1

1

我有同样的问题。您正在制作自己的 Android 版本吗?

当您使用屏幕密度作为 PRODUCT_LOCALES 的第一个参数时,就会发生这种情况。在我的产品 mk 文件中,PRODUCT_LOCALES 的第一个参数是 hdpi。我把它移到最后,现在一切正常。您可能遇到与我完全相同的问题。Android 构建过程采用 PRODUCT_LOCALES 中第一个单词的前两个字母并将它们存储为默认语言。如果你有,像我一样,hdpi Android 将“hd”作为默认语言!

我还在 Android makefile 中找到了这条评论,它完美地解释了这个问题:

屏幕密度实际上被认为是一种语言环境(因为它考虑了资源的构建时选择)。包含此文件的产品定义必须注意,最终 PRODUCT_LOCALES 扩展中的第一个条目不能是密度。

于 2013-04-15T12:08:36.770 回答