如何获取用户的国家/地区信息

时间:2010-05-10 15:30:37

标签: iphone location country

基本上我需要在应用程序启动时识别用户的国家/地区,并根据他/她的国家/地区在我的应用中启用或停用基于位置的功能。我需要在RootViewController加载之前尽快在应用程序委托中执行此操作。无论如何在iPhone SDK中都这样做了吗?

1 个答案:

答案 0 :(得分:0)

在应用运行时,您是否需要设备实际所在国家/地区的名称?

或者您可以使用设备正在使用的系统区域设置,例如en_US或fr_CA吗?

如果是后者,你可以:

NSLocale *currentUsersLocale = [NSLocale currentLocale];  
NSString *currentLocaleID = [currentUsersLocale localeIdentifier];`

然后currentLocaleID将为"en_US""fr_CA"或类似。

否则,您需要使用CoreLocation和某种形式的反向地理编码器将您的纬度/经度转换为国家/地区名称。

MKReverseGeocoder可以做到这一点,但服务条款说您需要与可能不适合您的Google地图一起使用。仅适用于OS 3.0及更高版本,请搜索 MKReverseGeocoder 的文档以获取更多信息。

我自己需要这个,最后使用设备IP地址在我们的服务器上用PHP进行地理编码。这是基本的,但为我们的需求提供了足够的细节。

查看此网络服务:http://ws.geonames.org/findNearby?lat=47.3&lng=9
在给定lat / lng对的情况下,返回带有国家和附近地名的XML文档。

该方法依赖于具有活动数据连接的设备。