我如何获得用户的当前区域在Android?
我可以得到默认的一个,但这可能不是当前的一个,对吗?
基本上,我想要当前地区的两个字母的语言代码。不是默认的。没有Locale.current()
我如何获得用户的当前区域在Android?
我可以得到默认的一个,但这可能不是当前的一个,对吗?
基本上,我想要当前地区的两个字母的语言代码。不是默认的。没有Locale.current()
当前回答
我使用了这个简单的代码:
if(getResources().getConfiguration().locale.getLanguage().equalsIgnoreCase("en"))
{
//do something
}
其他回答
以上所有答案都不行。 因此,我将在这里放置一个在4和9 android上工作的函数
private String getCurrentLanguage(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){
return LocaleList.getDefault().get(0).getLanguage();
} else{
return Locale.getDefault().getLanguage();
}
}
现在,我们可以使用ConfigurationCompat类来避免警告和不必要的样板。
Locale current = ConfigurationCompat.getLocales(getResources().getConfiguration()).get(0);
我用过这个:
String currentLanguage = Locale.getDefault().getDisplayLanguage();
if (currentLanguage.toLowerCase().contains("en")) {
//do something
}
根据官方文档,ConfigurationCompat在支持库中已弃用
您可以考虑使用
LocaleListCompat.getDefault()[0].toLanguageTag()第0个位置将是用户首选的语言环境
在第0个位置获得默认区域将是 LocaleListCompat.getAdjustedDefault ()
我使用了这个简单的代码:
if(getResources().getConfiguration().locale.getLanguage().equalsIgnoreCase("en"))
{
//do something
}