繁体   English   中英

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

[英]How to determine an Android device's current country location regardless of user location settings?

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

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

出于这个原因,我不相信我可以使用位置管理器(也是因为这些原因: LocationManager requestLocationUpdates不起作用

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

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

你的第三方ip location api的方法目前似乎是正确的。 可能这会对你有所帮助

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

http://ip-api.com/json

您可以使用TelephonyManager

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

更新:由于您无法使用电话,我建议尝试这样做,因为它是用户在设置设备时输入的。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM