我在哪里? - 获得国家Android移动设备实际上确实知道它在哪里 - 但有没有办法通过类似国家代码的方式检索国家?无需了解确切的GPS位置 - 这个国家就足够了我首先考虑使用时区,但实际上我需要更多的信息,因为如果位置是纽约或利马它会有所不同。问题的背景:我有一个使用温度值的应用程序,我想将默认单位设置为Celsius或Fahrenheit,具体取决于位置是美国还是外部
3 回答

心有法竹
TA贡献1866条经验 获得超5个赞
这将获得为手机设置的国家/地区代码(手机语言,非用户位置):
String locale = context.getResources().getConfiguration().locale.getCountry();
也可以用getISO3Country()替换getCountry()以获得该国家的3字母ISO代码。这将获得国家名称:
String locale = context.getResources().getConfiguration().locale.getDisplayCountry();
这似乎比其他方法更容易,并依赖于手机上的本地化设置,所以如果美国用户在国外,他们可能仍然需要华氏温度,这将工作:)
编者注:此解决方案与手机的位置无关。这是不变的。当您前往德国时,地区不会改变。简而言之:locale!= location。

ABOUTYOU
TA贡献1812条经验 获得超5个赞
实际上我只是发现使用getSimCountryIso()方法获得国家代码还有一种方法TelephoneManager
:
TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);String countryCode = tm.getSimCountryIso();
因为它是sim代码,所以在去其他国家旅行时也不应该改变。
- 3 回答
- 0 关注
- 460 浏览
添加回答
举报
0/150
提交
取消