華爲手機安卓9以上獲取系統多語言出錯的解決方案

華爲手機安卓9以上獲取系統多語言出錯的解決方案

事情的起因是做海外項目的時候需要進行多語言處理。我們通過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,然後和 “中國”進行比對,相等即認定爲繁體中文。

如果本文對你有所幫助,歡迎讚賞~~~

歡迎關注微信公衆號:Unity遊戲開發筆記
在這裏插入圖片描述
QQ羣:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章