0

我想得到国家名称和国家代码。为此,我使用了以下代码:

Country_Language = getApplicationContext().getResources().getConfiguration().locale.getDisplayLanguage();
Country_code= getApplicationContext().getResources().getConfiguration().locale.getCountry(); // get country code

但是我总是得到“美国”和“美国”作为国家代码和国家名称,而我的国家不是美国。

任何帮助表示赞赏。

4

3 回答 3

1

尝试这个:

TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String countryCode = tm.getSimCountryIso();
于 2013-11-11T06:45:39.953 回答
0

但是我总是得到“美国”和“美国”作为国家代码和国家名称,而我的国家不是美国。

任何帮助表示赞赏。

发生这种情况是因为您在没有 SIM 设备的情况下运行此代码。要解决此问题,您应该在 SIM 设备上运行此代码,然后此代码将显示当前国家名称和设备代码。

于 2015-02-11T06:10:14.820 回答
0
//try this
**HardCode Local Configure**
Locale locale = new Locale("en","South Africa");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
                getBaseContext().getResources().getDisplayMetrics());


String country_Language = getApplicationContext().getResources().getConfiguration().locale.getDisplayLanguage();
String Country_code= getApplicationContext().getResources().getConfiguration().locale.getCountry();

System.out.println("County Language :"+country_Language);
System.out.println("County Code :"+Country_code);
于 2013-11-11T06:55:28.987 回答