电话区号在iOS上的城市名称

在Apple内置的Voicemail应用程序中,如果find的电话号码无法在您的地址簿中识别,则会显示该号码下的大概位置,大概根据电话号码。 他们是怎么做到的?? 我猜想手机上有一个区号和交换号码的大型数据库,每个数据库都映射到一个城市或地区名称。 有谁知道这个映射是否可以通过公共API访问应用程序?

有很多样板代码可以将邮政编码映射到城市,但是我不会看到很多与区号/交换相同的代码。 有任何想法吗?

有一些网站会告诉你一个给定的地区代码的城市或城市。 Verizon有一个 ,像http://www.allareacodes.com/和http://www.411.com/area_zip_codes其他网站也做同样的事情。 您也可以在本地电话簿的前面find相同的信息。

由于可能的地区代码less于1000个,所以我会寻找一个你可以包含在你的程序中的地区代码列表 。 这样,无论networking连接是否可用,您的应用程序的这一方面都将起作用。

我创build了一个plist文件,其中包含区域代码和位置: areacodes.plist 。 要使用它,请遵循以下步骤:

如果你只是不会使用plist文件:

1.将plist文件添加到您的项目中。

2.加载文件:

NSBundle *bundle = [NSBundle mainBundle]; NSString *plistPath = [bundle pathForResource:@"areacodes" ofType:@"plist"]; NSDictionary *areaCodeDict = [[NSDictionary alloc] initWithContentsOfFile:plistPath]; 

3.使用你已经加载的字典。 键是区号,值是位置:

 NSString *areaCode = @"801"; NSString *location = [self.areaCodeConversion objectForKey:areaCode]; NSLog(@"%@",location); // prints utah 

要使用包含的类:

1.将下载的文件夹添加到您的项目中。

2.使用包含的类访问plist信息:

 #import "AreaCodes.h" ... AreaCodes *areaCodes = [[AreaCodes alloc] init]; NSString *location = [areaCodes getLocationForCode:@"801"]; NSLog(@"%@",location); // prints "Utah" 

他们可能会从Telcordia(trainfo.com)等公司购买商业产品。 我为GreatData.com工作,我们维护区域代码和前缀(也称为“NPA / NXX”),以及主要城市(费率中心)的状态,时区,运营公司等,但我们不有经度/纬度。 (Telcordia会)。

我不相信你可以在免费的产品中find你想要的数据。 我们花了很多时间手动validation我们的数据。