Android 如何获取系统已安装的语言环境

标签 android locale

有什么方法可以从 Android 设备获取系统安装的语言环境。我尝试使用来自 android Get Available localesgetAvailableLocales () ,但它不适用于 Asus、Carbon、Lava、Intex 等设备。

例如,如果我在 Nexus 设备中调用 getAvailableLocales(),我可以获取位于 Settings-> Language&Input -> Language 中的区域设置

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

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

最佳答案

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

Locale.getAvailableLocales() 

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

Resources.getSystem().getAssets().getLocales()

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

但后者始终是必杀技。 因为它只提供为该特定设备安装的所有语言环境(字体)。这些语言环境(字体)由该设备制造商放置。

我在 here 中解释了更多

关于Android 如何获取系统已安装的语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35579288/

相关文章:

安卓 : how to detect language has been changes on phone setting

android - Accessibility Callback - 当 talkback 读完通知时

java - 查询索引数据库的java代码与查询未索引数据库的java代码相同吗?

android - 指示 gnu make 仅使用静态库

c++ - C++0x 中是否有本地化支持的更新?

ruby-on-rails - Rails 语言环境文件无法加载

c++ - std::locale 没有 lconv::p_cs_precedes 的等价物?

python - 由于系统区域设置错误,Django 日志记录失败

java - Android PixelXorXfermode 已弃用

android - SharedPreferences 管理不同包之间