您的位置:首页 > 移动开发 > Unity3D

unity4.3 Application.systemLanguage在android返回Unknow的解决办法

2014-11-05 15:23 507 查看
今天把项目发布到android上,发现无法发现系统语言。

程序中加语句 Debug.Log("Application.systemLanguage:" + Application.systemLanguage);

真机环境下的输出是:Unknown

这是unity在4.3.0 4.3.1等版本的bug,4.3.3中修复,4.2应该也是正确的。

如果不换版本,需要用这个方法获取系统语言:

<span style="font-family:Microsoft YaHei;font-size:14px;">// bugfix for Unity 4.3.3
public static SystemLanguage GetApplicationSystemLanguage()
{
#if UNITY_ANDROID && !UNITY_EDITOR
AndroidJavaClass localeClass = new AndroidJavaClass("java/util/Locale");
AndroidJavaObject defaultLocale = localeClass.CallStatic<AndroidJavaObject>("getDefault");
AndroidJavaObject usLocale = localeClass.GetStatic<AndroidJavaObject>("US");
string systemLanguage = defaultLocale.Call<string>("getDisplayLanguage", usLocale);
Debug.Log("systemLanguage:" + systemLanguage);
SystemLanguage code;
try {
code = (SystemLanguage)Enum.Parse(typeof(SystemLanguage), systemLanguage);
} catch {
code = SystemLanguage.Unknown;
}
#else
SystemLanguage code = Application.systemLanguage;
#endif
return code;
}</span>


bug上报地址:

http://forum.unity3d.com/threads/unity-4-3-0f4-application-systemlanguage-returns-unknown-on-android.211227/

4.3.3 release note:

http://unity3d.com/unity/whats-new/unity-4.3.3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐