本篇内容主要讲解“怎么用java实现通过安卓底层的接口获取系统语言”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用java实现通过安卓底层的接口获取系统语言”吧!
事情的起因是做海外项目的时候需要进行多语言处理。我们通过Unity自带的Application.systemLanguage接口获取手机的语言环境一直没啥问题。但是在华为手机的安卓9系统的时候,我们在切换到繁体中文之后,通过Unity的接口发现使用显示是ChineseSimplified简体中文。
一开始我们想的是Unity引擎可能没有兼容到,所以开始编写java代码,通过安卓底层的接口去获取系统语言。
public String GetDeviceLanguage()
{
Locale locale = Locale.getDefault();
//>=24 is Android 7.0 or high
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
locale = getResources().getConfiguration().getLocales().get(0);
}
String language = locale.getLanguage() + "-" + locale.getCountry();
return language;
}
我们使用上面的接口发现在手机系统是繁体中文的情况下,获取到的仍然是zh-cn.也就是安卓底层也是没法获取正确。但是手机显示的语言确实是繁体中文。怎么办呢?
既然显示的是繁体中文,那么我们就根据显示的语言来处理就好了。java底层还有这样一个接口
locale.getDisplayCountry();
获取显示的国家。我们发现显示的是 “中國”。好了我们通过编写java代码获取到DisplayCountry,然后和 “中國”进行比对,相等即认定为繁体中文。
到此,相信大家对“怎么用java实现通过安卓底层的接口获取系统语言”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/tech/opensource/220094.html