我正在开发一个应用程序,它应该使用TTS来读取不同语言的文本。而不是向用户提供所有可用语言的列表(我个人认为这很难处理),我希望他只能看到他手机上当前安装的语言。换句话说,我的应用程序不应该安装新语言,它应该只访问手机上已安装的语言并在它们之间切换。
以下是我使用系统/设置/语言和输入/语言首选项的示例:。
使用Locale.getDefault()我只获取默认语言(在我的情况下:en_US),使用getLocales我获得所有类型的Locales,因此如何获得3种已安装语言的列表:en_US,de_DE,es_ES ,最好是Locale类型的数组。
我有点被困在这里,所以非常感谢任何帮助: - )。
答案 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版之前的版本,并希望得到任何帮助。