我使用 Locale.getDefault.getDisplayLanauge() 来获取语言代码,但我得到了“hd”。我不知道它是什么。我想它应该是“en”。
有人可以给我一个提示,为什么它默认为“hd”,这是什么意思?
我有同样的问题。您正在制作自己的 Android 版本吗?
当您使用屏幕密度作为 PRODUCT_LOCALES 的第一个参数时,就会发生这种情况。在我的产品 mk 文件中,PRODUCT_LOCALES 的第一个参数是 hdpi。我把它移到最后,现在一切正常。您可能遇到与我完全相同的问题。Android 构建过程采用 PRODUCT_LOCALES 中第一个单词的前两个字母并将它们存储为默认语言。如果你有,像我一样,hdpi Android 将“hd”作为默认语言!
我还在 Android makefile 中找到了这条评论,它完美地解释了这个问题:
屏幕密度实际上被认为是一种语言环境(因为它考虑了资源的构建时选择)。包含此文件的产品定义必须注意,最终 PRODUCT_LOCALES 扩展中的第一个条目不能是密度。