Android 从区域设置代码获取国家/地区和语言

Android 从区域设置代码获取国家/地区和语言,android,locale,speech-recognition,Android,Locale,Speech Recognition,我有一个android方法,可以输出设备中可用的所有语音识别语言代码。问题是它返回的代码像“en-US”、“es-es”、“es-MX”。。。我想知道是否有办法将这些代码转换为该语言的显示名称(英语(美国)、西班牙语(西班牙)。谢谢你的帮助 @Override public void onReceive(Context context, Intent intent) { Bundle results = getResultExtras(true); if (results.con

我有一个android方法,可以输出设备中可用的所有语音识别语言代码。问题是它返回的代码像“en-US”、“es-es”、“es-MX”。。。我想知道是否有办法将这些代码转换为该语言的显示名称(英语(美国)、西班牙语(西班牙)。谢谢你的帮助

@Override
public void onReceive(Context context, Intent intent)
{
    Bundle results = getResultExtras(true);
    if (results.containsKey(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE))
    {
        languagePreference =
                results.getString(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE);
    }
    if (results.containsKey(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES))
    {
        supportedLanguages =
                results.getStringArrayList(
                        RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES);
    }

    for(int i=0;i<supportedLanguages.size();i++){
        System.out.println("The language supported is: "+supportedLanguages.get(i));
    }
}
@覆盖
公共void onReceive(上下文、意图)
{
Bundle results=getResultTextras(true);
if(results.containsKey(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE))
{
语言偏好=
results.getString(RecognizerIntent.EXTRA_LANGUAGE_首选项);
}
if(results.containsKey(RecognizerIntent.EXTRA_支持的语言))
{
支持的语言=
results.getStringArrayList(
RecognizerIntent.EXTRA_支持的_语言);
}

对于(int i=0;i从ISO语言代码的数据源构建字典:


从ISO语言代码的数据源构建词典:

是的,您可以使用:

是的,您可以使用:


有一个名为locale.getDisplayName()的方法,它自己创建输出(英语(美国)),而不使用最后一段代码。非常感谢您,您在一分钟内解决了我试图解决几个小时的问题。有一个名为locale.getDisplayName()的方法创建输出(英语(美国))不用最后一段代码,你自己解决了一个我花了几个小时试图在一分钟内解决的问题。
Locale locale = Locale.forLanguageTag("en-US");
System.out.println(locale.getDisplayName());

// "English (United States)"