Android如何获取系统的安装区域设置

Bha*_*ina 8 android locale

有没有办法从Android设备获得系统安装的语言环境.我尝试使用getAvailableLocales ()Android 获取可用语言环境,但它不适用于Asus,Carbon,Lava,Intex等设备.

例如,如果我getAvailableLocales()在Nexus设备中调用,我可以获得其中的语言环境Settings-> Language&Input -> Language

但是如果我在任何Carbon设备上做同样的事情,而不是从中获取语言 Settings-> Language&Input -> Language,我会得到一个不同的列表.

我只想要设备中已安装的语言列表,而不是操作系统支持的所有语言.

Ada*_*m S 5

Locale.getAvailableLocales()方法是通用的"基础"区域设置集.从文档:

大多数区域设置敏感的类提供了自己的getAvailableLocales方法,这应该优先于这种通用方法.

强调我的.

您可以通过查询getAvailableLocales()相应类的方法来获取特定用例的语言环境.特别:


小智 5

如果您想要系统支持的语言环境,请使用

Locale.getAvailableLocales() 
Run Code Online (Sandbox Code Playgroud)

如果您想要系统支持和设备启用的语言环境

Resources.getSystem().getAssets().getLocales()
Run Code Online (Sandbox Code Playgroud)

通过使用第一个,您无法确定该设备是否支持所有语言环境。因为他们都带着那个 Android ROM。

但后一个总是有把握的。因为它只提供为该特定设备安装的所有语言环境(字体)。这些语言环境(字体)由该设备制造商放置。

我在这里解释了更多