8

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

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

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

我认为我需要的方法是向第三方 ip location api 发出简单的 HTTP 请求:例如 http://www.ipinfodb.com/ip_location_api.phphttps://freegeoip.net

这是最好的方法吗?什么是最好的开放 api 使用?

4

2 回答 2

8

您目前使用第三方 ip location api 的方法似乎是正确的。可能这会帮助你

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

http://ip-api.com/json

于 2015-03-06T20:37:47.963 回答
4

您可以使用 TelephonyManager

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

更新: 由于您不能使用电话,我建议您尝试一下,因为它是用户设置设备时的输入。

String locale = context.getResources().getConfiguration().locale.getCountry();
于 2015-03-06T20:24:00.147 回答