我对stackoverflow和Google网上论坛了解了一下,并没有真正找到这个问题的答案。
我只是想知道Android手机用户当前所处的国家/地区。
如果用户仅使用wifi,我认为TelephonyManager不起作用。这是真的吗?
我们尝试使用android.location.Geocoder传递用户当前的纬度和经度,但它真的很不稳定。它会经常返回空结果。有时我们可以继续问它并最终会返回结果,但它真的很难看。有更可靠的方式吗?
谢谢, Rob Sz
答案 0 :(得分:2)
您可以尝试反向地理编码:)
http://code.google.com/apis/maps/documentation/geocoding/
检查此链接。该国家/地区以JSON格式退回。
http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=false
老实说,我不知道这是否适用于所有场景,但我相信这是有帮助的。
编辑:看起来有点像:)
与我的国家一起尝试并且似乎完美无缺。
http://maps.googleapis.com/maps/api/geocode/json?latlng=6.822716,79.878159&sensor=false
你会得到
{
"status": "ZERO_RESULTS",
"results": [ ]
}
例如,如果用户有任何机会在海洋中间:P
答案 1 :(得分:0)
使用基于IP的地理定位服务怎么样?我猜想,由于监管方面的差异,网络部门通常都是针对特定国家/地区的,除非是企业VPN这样的情况,你几乎可以在其他地方插入网络?
答案 2 :(得分:0)
尝试使用像Chris建议的网络服务。以下是一些可以解决问题的清单:
http://free-web-services.com/web-services/geo/ip-to-location/
我正在使用http://www.hostip.info,这很简单。