android识别当前语言,获取设备中的当前语言

对我有用的是:

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());

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值