如何访问已安装语言的列表

时间:2017-12-31 10:38:21

标签: java android

我正在开发一个应用程序,它应该使用TTS来读取不同语言的文本。而不是向用户提供所有可用语言的列表(我个人认为这很难处理),我希望他只能看到他手机上当前安装的语言。换句话说,我的应用程序不应该安装新语言,它应该只访问手机上已安装的语言并在它们之间切换。

以下是我使用系统/设置/语言和输入/语言首选项的示例:phone language preferences

使用Locale.getDefault()我只获取默认语言(在我的情况下:en_US),使用getLocales我获得所有类型的Locales,因此如何获得3种已安装语言的列表:en_US,de_DE,es_ES ,最好是Locale类型的数组。

我有点被困在这里,所以非常感谢任何帮助: - )。

1 个答案:

答案 0 :(得分:1)

使用API​​-Level 24可以实现以下解决方案:

LocaleList.getDefault():提供当前安装的Locales的列表。

        String strLocales = "";
        LocaleList myLocales = LocaleList.getDefault();
        for (int i = 0; i<myLocales.size(); i++) {
            strLocales = stringLocales + "\n" + myLocales.get(i).getDisplayLanguage();
            strLocales = stringLocales + " / " + myLocales.get(i).getDisplayCountry();
        }

结果(strLocales)是:

  • 英语/美国
  • 西班牙/西班牙
  • 德国/德国

这正是我想要的。不幸;我仍然不知道,如何解决24版之前的版本,并希望得到任何帮助。