是否可以在 Android 上获取用户在系统设置中选择的语言列表?

Is it possible on Android to get the list of languages chosen by the user in the system settings?

在较新的 Android 版本的系统设置中,用户可以:

  1. 定义一种默认语言
  2. 指定用户理解的其他语言

这种多语言偏好与现代网络浏览器的多语言设置非常相似。

在 Android 应用程序中,Locale.getDefault().language 可以使用默认语言。

设备上安装的所有区域设置的列表可通过 Locale.getAvailableLocales() 访问。

但是还有一种方法可以获取上面屏幕上显示的首选语言列表吗?

我觉得应该可以:

LocalList locals = getResources().getConfiguration().getLocales ()

for(int i=0; i<locals.size(); i++){
   Log.d("tag",locals.get(i).getDisplayLanguage())
}

了解更多信息

https://developer.android.com/reference/android/content/res/Configuration.html#getLocales() https://developer.android.com/reference/java/util/Locale.html

您可以使用

LocaleList locales = LocaleList.getDefault();

或为了与 API 之前的 24

兼容
LocaleListCompat locales = LocaleListCompat.getDefault();

然后

for( int i = 0; i < locales.size(); i++ ) {
    Locale loc = locales.get(i);
    Log.d("lang", loc.getDisplayLanguage(loc) + " (" + loc.getDisplayCountry(loc) + ")");
}