为了账号安全,请及时绑定邮箱和手机立即绑定

获取设备中的当前语言

获取设备中的当前语言

Qyouu 2019-09-18 10:58:36
我们如何才能在Android设备中选择当前语言?
查看完整描述

3 回答

?
www说

TA贡献1775条经验 获得超8个赞


如果您想获得设备的选定语言,这可能对您有所帮助:


Locale.getDefault().getDisplayLanguage();


查看完整回答
反对 回复 2019-09-18
?
忽然笑

TA贡献1806条经验 获得超5个赞

我在Android 4.1.2设备上检查了Locale方法,结果如下:


Locale.getDefault().getLanguage()       ---> en      

Locale.getDefault().getISO3Language()   ---> eng 

Locale.getDefault().getCountry()        ---> US 

Locale.getDefault().getISO3Country()    ---> USA 

Locale.getDefault().getDisplayCountry() ---> United States 

Locale.getDefault().getDisplayName()    ---> English (United States) 

Locale.getDefault().toString()          ---> en_US

Locale.getDefault().getDisplayLanguage()---> English


查看完整回答
反对 回复 2019-09-18
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

对我有用的是:


Resources.getSystem().getConfiguration().locale;

Resource.getSystem()返回一个全局共享的Resources对象,该对象仅提供对系统资源的访问(没有应用程序资源),并且没有为当前屏幕配置(不能使用维度单位,不会根据方向更改等)。


由于getConfiguration.locale现已弃用,因此在Android Nougat中获取主要语言环境的首选方法是:


Resources.getSystem().getConfiguration().getLocales().get(0);

为了保证与以前的Android版本的兼容性,可能的解决方案是一个简单的检查:


Locale locale;

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {

    locale = Resources.getSystem().getConfiguration().getLocales().get(0);

} else {

    //noinspection deprecation

    locale = Resources.getSystem().getConfiguration().locale;

}

更新


从支持库开始,26.1.0您不需要检查Android版本,因为它提供了向后兼容的方便方法getLocales()。


只需致电:


ConfigurationCompat.getLocales(Resources.getSystem().getConfiguration());


查看完整回答
反对 回复 2019-09-18
  • 3 回答
  • 0 关注
  • 727 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信