无论用户位置设置如何,如何确定Android设备的当前国家/地区位置?

时间:2015-03-06 20:21:04

标签: android geolocation w3c-geolocation

我需要确定设备所在的国家/地区(iso3),即使用户的设备已关闭GPS并且不允许应用访问它的位置。

我还需要考虑没有SIM卡的平板电脑,因此无法使用telephonyManager。

出于这个原因,我不相信我可以使用位置管理员(也是因为以下原因:LocationManager requestLocationUpdates doesn't work

我认为我需要的方法是向第三方ip位置api发出一个简单的HTTP请求: 例如 http://www.ipinfodb.com/ip_location_api.php 要么 https://freegeoip.net

这是最好的方法吗?什么是最好的开放API?

2 个答案:

答案 0 :(得分:6)

您的第三方IP位置api的方法目前似乎正确。可能这会对你有所帮助

http://ip-api.com/docs/api:json

http://ip-api.com/json

答案 1 :(得分:3)

您可以使用TelephonyManager

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

<强>更新 由于您无法使用电话,我建议您尝试这样做,因为用户在设置设备时会输入。

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