电话区号在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我们的数据。