2016-01-03 56 views
0

之間有什麼區別:獲得國家TelephonyManager VS locale.getCountry()

String locale = context.getResources().getConfiguration().locale.getCountry(); 

TelephonyManager tm = (TelephonyManager)this.getSystemService(this.TELEPHONY_SERVICE); 
String countryCodeValue = tm.getNetworkCountryIso(); 

我需要的是這樣的(很難對它進行測試)。用戶來自美國,用他的SIM卡前往法國並在國外使用他的SIM卡,該設備始終以英語(美國)。當他到達法國時,我需要從代碼中獲得法國。如何做到這一點?

+0

請再讀一遍我的問題 – Dim

回答

1

使用TelephonyManager.getNetworkCountryIso()

返回ISO國家代碼相當於目前註冊運營商的MCC(移動國家代碼)的。

可用性:只有當用戶註冊到網絡。 CDMA網絡上的結果可能不可靠(使用getPhoneType()來確定是否在CDMA網絡上)。例如

LocationManager.getLastKnownLocation()

String locale = context.getResources().getConfiguration().locale.getCountry();依賴於裝置,這將是在全球範圍內是相同的,除非用戶手動地改變它的區域設置。