有没有办法从Android设备获得系统安装的语言环境.我尝试使用getAvailableLocales ()Android 获取可用语言环境,但它不适用于Asus,Carbon,Lava,Intex等设备.
例如,如果我getAvailableLocales()在Nexus设备中调用,我可以获得其中的语言环境Settings-> Language&Input -> Language
但是如果我在任何Carbon设备上做同样的事情,而不是从中获取语言 Settings-> Language&Input -> Language,我会得到一个不同的列表.
我只想要设备中已安装的语言列表,而不是操作系统支持的所有语言.
该Locale.getAvailableLocales()方法是通用的"基础"区域设置集.从文档:
大多数区域设置敏感的类提供了自己的
getAvailableLocales方法,这应该优先于这种通用方法.
强调我的.
您可以通过查询getAvailableLocales()相应类的方法来获取特定用例的语言环境.特别:
BreakIterator.getAvailableLocales()Collator.getAvailableLocales()DateFormat.getAvailableLocales()DateFormatSymbols.getAvailableLocales()DecimalFormatSymbols.getAvailableLocales()NumberFormat.getAvailableLocales()Calendar.getAvailableLocales()小智 5
如果您想要系统支持的语言环境,请使用
Locale.getAvailableLocales()
Run Code Online (Sandbox Code Playgroud)
如果您想要系统支持和设备启用的语言环境
Resources.getSystem().getAssets().getLocales()
Run Code Online (Sandbox Code Playgroud)
通过使用第一个,您无法确定该设备是否支持所有语言环境。因为他们都带着那个 Android ROM。
但后一个总是有把握的。因为它只提供为该特定设备安装的所有语言环境(字体)。这些语言环境(字体)由该设备制造商放置。
我在这里解释了更多
| 归档时间: |
|
| 查看次数: |
804 次 |
| 最近记录: |