iOS – 是美国的用户?

有没有办法让我检测用户是否在美国而不询问他们的位置?例如,当我在我的计算机上访问Fandango时,它知道我所在的县和州只是基于我的WiFi.

如果我有一台设备,也许是没有GPS的iPod Touch,我想验证它是在美国,它们是连接到WiFi …或者如果我有一台iPhone并且它已连接到3G和我想确保用户在美国,有没有一种方法我可以检查该信息而没有一点警报视图“__想要使用您当前的位置”?我不需要确切的坐标,我只需要确认这些用户是在美国(包括夏威夷和阿拉斯加州)……当地?

解决方法

我首先会尝试检查操作符的 Mobile Country Code.它会告诉您用户的移动电话服务提供商的数字移动国家/地区代码,除非他们切换到其他国家/地区的服务提供商,否则用户无法更改.
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
#import <CoreTelephony/CTCarrier.h>

CTTelephonyNetworkInfo *netInfo = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier *carrier = [netInfo subscriberCellularProvider];
Nsstring *mcc = [carrier mobileCountryCode];

这当然不适用于未连接到移动操作符(iPod Touch,某些iPad等)的设备.因此,作为后退,我会使用或创建自己的IP geolocation API.您可以获得在国家/地区级别上准确率为99.5%的free database.这将非常适合检测没有移动提供商的设备的国家/地区.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...