如何在Android设备中选择当前语言?


当前回答

这个解决方案对我很有效。这将返回android设备的语言(不是应用程序的本地语言)

String locale = getApplicationContext().getResources().getConfiguration().locale.getLanguage();

这将返回"en"或"de"或"fr"或任何你的设备语言设置。

其他回答

我的解是这样的

@SuppressWarnings("deprecation")
public String getCurrentLocale2() {
    return Resources.getSystem().getConfiguration().locale.getLanguage();
}

@TargetApi(Build.VERSION_CODES.N)
public Locale getCurrentLocale() {
    getResources();
    return Resources.getSystem().getConfiguration().getLocales().get(0);
}

然后

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                Log.e("Locale", getCurrentLocale().getLanguage());
            } else {
                Log.e("Locale", getCurrentLocale2().toString());
            }

显示——>和

如Locale引用中所述,获取语言的最佳方法是:

Locale.getDefault().getLanguage()

该方法根据ISO 639-1标准返回带有语言id的字符串

如果你使用喷气背包撰写

在可组合功能方面

Context.applicationContext.resources.configuration.locales.get(0).language 

您可以使用此代码找出键盘电流

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
InputMethodSubtype ims = imm.getCurrentInputMethodSubtype();
String locale = ims.getLocale();

有两种语言。

操作系统默认语言:

Locale.getDefault().getDisplayLanguage();

目前申请语言:

getResources().getConfiguration().locale.getDisplayLanguage();//return string