【问题标题】:How to convert "Country code" to "Mobile Country Code" programmatically in iOS?如何在 iOS 中以编程方式将“国家代码”转换为“移动国家代码”?
【发布时间】:2013-03-19 14:36:33
【问题描述】:

我可以从 NSLocale 或 GeoPlugin 获取国家/地区代码(ISO 3166“两个字母代码”)。

但我的要求是获得 MCC(移动国家代码)。我需要使用设备的当前 mcc 调用一个 REST API 以确定用户是在家还是在国外。

我考虑过使用 MCC 和 CC 作为键值对来保留本地数据库。但是,如果我将数据库与捆绑包一起打包,这将不是最新的。

在 SO 中问这个问题之前,我搜索了很多。是否可以通过任何 iOS API 或任何第三方网站将 CC 转换为 MCC?

提前致谢。

【问题讨论】:

  • Leon 给出了获取用户 SIM 卡的 MCC 的正确方法。我不认为将 plist 或数据库与应用程序捆绑在一起会是一个问题。创建一个新国家/地区并不常见,GSMA 必须更新他们的 MCC 列表。 MNC 的创建更加频繁,但新的 MCC 相对较少。

标签: iphone ios geocoding country-codes mobile-country-code


【解决方案1】:

你可以手动使用这个

NSDictionary *dictDialingCodes = [[NSDictionary alloc]initWithObjectsAndKeys:
                    @"972", @"IL",
                    @"93", @"AF",
                    @"355", @"AL",
                    @"213", @"DZ",
                    @"1", @"AS",
                    @"376", @"AD",
                    @"244", @"AO",
                    @"1", @"AI",
                    @"1", @"AG",
                    @"54", @"AR",
                    @"374", @"AM",
                    @"297", @"AW",
                    @"61", @"AU",
                    @"43", @"AT",
                    @"994", @"AZ",
                    @"1", @"BS",
                    @"973", @"BH",
                    @"880", @"BD",
                    @"1", @"BB",
                    @"375", @"BY",
                    @"32", @"BE",
                    @"501", @"BZ",
                    @"229", @"BJ",
                    @"1", @"BM", @"975", @"BT",
                    @"387", @"BA", @"267", @"BW", @"55", @"BR", @"246", @"IO",
                    @"359", @"BG", @"226", @"BF", @"257", @"BI", @"855", @"KH",
                    @"237", @"CM", @"1", @"CA", @"238", @"CV", @"345", @"KY",
                    @"236", @"CF", @"235", @"TD", @"56", @"CL", @"86", @"CN",
                    @"61", @"CX", @"57", @"CO", @"269", @"KM", @"242", @"CG",
                    @"682", @"CK", @"506", @"CR", @"385", @"HR", @"53", @"CU",
                    @"537", @"CY", @"420", @"CZ", @"45", @"DK", @"253", @"DJ",
                    @"1", @"DM", @"1", @"DO", @"593", @"EC", @"20", @"EG",
                    @"503", @"SV", @"240", @"GQ", @"291", @"ER", @"372", @"EE",
                    @"251", @"ET", @"298", @"FO", @"679", @"FJ", @"358", @"FI",
                    @"33", @"FR", @"594", @"GF", @"689", @"PF", @"241", @"GA",
                    @"220", @"GM", @"995", @"GE", @"49", @"DE", @"233", @"GH",
                    @"350", @"GI", @"30", @"GR", @"299", @"GL", @"1", @"GD",
                    @"590", @"GP", @"1", @"GU", @"502", @"GT", @"224", @"GN",
                    @"245", @"GW", @"595", @"GY", @"509", @"HT", @"504", @"HN",
                    @"36", @"HU", @"354", @"IS", @"91", @"IN", @"62", @"ID",
                    @"964", @"IQ", @"353", @"IE", @"972", @"IL", @"39", @"IT",
                    @"1", @"JM", @"81", @"JP", @"962", @"JO", @"77", @"KZ",
                    @"254", @"KE", @"686", @"KI", @"965", @"KW", @"996", @"KG",
                    @"371", @"LV", @"961", @"LB", @"266", @"LS", @"231", @"LR",
                    @"423", @"LI", @"370", @"LT", @"352", @"LU", @"261", @"MG",
                    @"265", @"MW", @"60", @"MY", @"960", @"MV", @"223", @"ML",
                    @"356", @"MT", @"692", @"MH", @"596", @"MQ", @"222", @"MR",
                    @"230", @"MU", @"262", @"YT", @"52", @"MX", @"377", @"MC",
                    @"976", @"MN", @"382", @"ME", @"1", @"MS", @"212", @"MA",
                    @"95", @"MM", @"264", @"NA", @"674", @"NR", @"977", @"NP",
                    @"31", @"NL", @"599", @"AN", @"687", @"NC", @"64", @"NZ",
                    @"505", @"NI", @"227", @"NE", @"234", @"NG", @"683", @"NU",
                    @"672", @"NF", @"1", @"MP", @"47", @"NO", @"968", @"OM",
                    @"92", @"PK", @"680", @"PW", @"507", @"PA", @"675", @"PG",
                    @"595", @"PY", @"51", @"PE", @"63", @"PH", @"48", @"PL",
                    @"351", @"PT", @"1", @"PR", @"974", @"QA", @"40", @"RO",
                    @"250", @"RW", @"685", @"WS", @"378", @"SM", @"966", @"SA",
                    @"221", @"SN", @"381", @"RS", @"248", @"SC", @"232", @"SL",
                    @"65", @"SG", @"421", @"SK", @"386", @"SI", @"677", @"SB",
                    @"27", @"ZA", @"500", @"GS", @"34", @"ES", @"94", @"LK",
                    @"249", @"SD", @"597", @"SR", @"268", @"SZ", @"46", @"SE",
                    @"41", @"CH", @"992", @"TJ", @"66", @"TH", @"228", @"TG",
                    @"690", @"TK", @"676", @"TO", @"1", @"TT", @"216", @"TN",
                    @"90", @"TR", @"993", @"TM", @"1", @"TC", @"688", @"TV",
                    @"256", @"UG", @"380", @"UA", @"971", @"AE", @"44", @"GB",
                    @"1", @"US", @"598", @"UY", @"998", @"UZ", @"678", @"VU",
                    @"681", @"WF", @"967", @"YE", @"260", @"ZM", @"263", @"ZW",
                    @"591", @"BO", @"673", @"BN", @"61", @"CC", @"243", @"CD",
                    @"225", @"CI", @"500", @"FK", @"44", @"GG", @"379", @"VA",
                    @"852", @"HK", @"98", @"IR", @"44", @"IM", @"44", @"JE",
                    @"850", @"KP", @"82", @"KR", @"856", @"LA", @"218", @"LY",
                    @"853", @"MO", @"389", @"MK", @"691", @"FM", @"373", @"MD",
                    @"258", @"MZ", @"970", @"PS", @"872", @"PN", @"262", @"RE",
                    @"7", @"RU", @"590", @"BL", @"290", @"SH", @"1", @"KN",
                    @"1", @"LC", @"590", @"MF", @"508", @"PM", @"1", @"VC",
                    @"239", @"ST", @"252", @"SO", @"47", @"SJ", @"963",
                    @"SY",@"886",
                    @"TW", @"255",
                    @"TZ", @"670",
                    @"TL",@"58",
                    @"VE",@"84",
                    @"VN",
                    @"284", @"VG",
                    @"340", @"VI",
                    @"678",@"VU",
                    @"681",@"WF",
                    @"685",@"WS",
                    @"967",@"YE",
                    @"262",@"YT",
                    @"27",@"ZA",
                    @"260",@"ZM",
                    @"263",@"ZW",
                    nil];

【讨论】:

  • 最后我最终使用了这种方法。
【解决方案2】:

如果我正确理解您的问题,您希望实现这一目标:

CTTelephonyNetworkInfo *info = [CTTelephonyNetworkInfo new];
CTCarrier *carrier = info.subscriberCellularProvider;

NSLog(@"MCC >> %@", carrier.mobileCountryCode);

也许此代码可用于调整它,以便您可以输入动态国家代码而不是subscriberCellularProvider。

【讨论】:

    【解决方案3】:
    - (NSDictionary *)callingCodeMap
    {
        return @{
            @"AD" : @"+376",
            @"AE" : @"+971",
            @"AF" : @"+93",
            @"AG" : @"+1268",
            @"AI" : @"+1264",
            @"AL" : @"+355",
            @"AM" : @"+374",
            @"AN" : @"+599",
            @"AO" : @"+244",
            @"AQ" : @"+672",
            @"AR" : @"+54",
            @"AS" : @"+1684",
            @"AT" : @"+43",
            @"AU" : @"+61",
            @"AW" : @"+297",
            @"AZ" : @"+994",
            @"BA" : @"+387",
            @"BB" : @"+1246",
            @"BD" : @"+880",
            @"BE" : @"+32",
            @"BF" : @"+226",
            @"BG" : @"+359",
            @"BH" : @"+973",
            @"BI" : @"+257",
            @"BJ" : @"+229",
            @"BL" : @"+590",
            @"BM" : @"+1441",
            @"BN" : @"+673",
            @"BO" : @"+591",
            @"BR" : @"+55",
            @"BS" : @"+1242",
            @"BT" : @"+975",
            @"BW" : @"+267",
            @"BY" : @"+375",
            @"BZ" : @"+501",
            @"CA" : @"+1",
            @"CC" : @"+61",
            @"CD" : @"+243",
            @"CF" : @"+236",
            @"CG" : @"+242",
            @"CH" : @"+41",
            @"CI" : @"+225",
            @"CK" : @"+682",
            @"CL" : @"+56",
            @"CM" : @"+237",
            @"CN" : @"+86",
            @"CO" : @"+57",
            @"CR" : @"+506",
            @"CU" : @"+53",
            @"CV" : @"+238",
            @"CX" : @"+61",
            @"CY" : @"+357",
            @"CZ" : @"+420",
            @"DE" : @"+49",
            @"DJ" : @"+253",
            @"DK" : @"+45",
            @"DM" : @"+1767",
            @"DO" : @"+1809",
            @"DZ" : @"+213",
            @"EC" : @"+593",
            @"EE" : @"+372",
            @"EG" : @"+20",
            @"ER" : @"+291",
            @"ES" : @"+34",
            @"ET" : @"+251",
            @"FI" : @"+358",
            @"FJ" : @"+679",
            @"FK" : @"+500",
            @"FM" : @"+691",
            @"FO" : @"+298",
            @"FR" : @"+33",
            @"GA" : @"+241",
            @"GB" : @"+44",
            @"GD" : @"+1473",
            @"GE" : @"+995",
            @"GH" : @"+233",
            @"GI" : @"+350",
            @"GL" : @"+299",
            @"GM" : @"+220",
            @"GN" : @"+224",
            @"GQ" : @"+240",
            @"GR" : @"+30",
            @"GT" : @"+502",
            @"GU" : @"+1671",
            @"GW" : @"+245",
            @"GY" : @"+592",
            @"HK" : @"+852",
            @"HN" : @"+504",
            @"HR" : @"+385",
            @"HT" : @"+509",
            @"HU" : @"+36",
            @"ID" : @"+62",
            @"IE" : @"+353",
            @"IL" : @"+972",
            @"IM" : @"+44",
            @"IN" : @"+91",
            @"IQ" : @"+964",
            @"IR" : @"+98",
            @"IS" : @"+354",
            @"IT" : @"+39",
            @"JM" : @"+1876",
            @"JO" : @"+962",
            @"JP" : @"+81",
            @"KE" : @"+254",
            @"KG" : @"+996",
            @"KH" : @"+855",
            @"KI" : @"+686",
            @"KM" : @"+269",
            @"KN" : @"+1869",
            @"KP" : @"+850",
            @"KR" : @"+82",
            @"KW" : @"+965",
            @"KY" : @"+1345",
            @"KZ" : @"+7",
            @"LA" : @"+856",
            @"LB" : @"+961",
            @"LC" : @"+1758",
            @"LI" : @"+423",
            @"LK" : @"+94",
            @"LR" : @"+231",
            @"LS" : @"+266",
            @"LT" : @"+370",
            @"LU" : @"+352",
            @"LV" : @"+371",
            @"LY" : @"+218",
            @"MA" : @"+212",
            @"MC" : @"+377",
            @"MD" : @"+373",
            @"ME" : @"+382",
            @"MF" : @"+1599",
            @"MG" : @"+261",
            @"MH" : @"+692",
            @"MK" : @"+389",
            @"ML" : @"+223",
            @"MM" : @"+95",
            @"MN" : @"+976",
            @"MO" : @"+853",
            @"MP" : @"+1670",
            @"MR" : @"+222",
            @"MS" : @"+1664",
            @"MT" : @"+356",
            @"MU" : @"+230",
            @"MV" : @"+960",
            @"MW" : @"+265",
            @"MX" : @"+52",
            @"MY" : @"+60",
            @"MZ" : @"+258",
            @"NA" : @"+264",
            @"NC" : @"+687",
            @"NE" : @"+227",
            @"NG" : @"+234",
            @"NI" : @"+505",
            @"NL" : @"+31",
            @"NO" : @"+47",
            @"NP" : @"+977",
            @"NR" : @"+674",
            @"NU" : @"+683",
            @"NZ" : @"+64",
            @"OM" : @"+968",
            @"PA" : @"+507",
            @"PE" : @"+51",
            @"PF" : @"+689",
            @"PG" : @"+675",
            @"PH" : @"+63",
            @"PK" : @"+92",
            @"PL" : @"+48",
            @"PM" : @"+508",
            @"PN" : @"+870",
            @"PR" : @"+1",
            @"PT" : @"+351",
            @"PW" : @"+680",
            @"PY" : @"+595",
            @"QA" : @"+974",
            @"RO" : @"+40",
            @"RS" : @"+381",
            @"RU" : @"+7",
            @"RW" : @"+250",
            @"SA" : @"+966",
            @"SB" : @"+677",
            @"SC" : @"+248",
            @"SD" : @"+249",
            @"SE" : @"+46",
            @"SG" : @"+65",
            @"SH" : @"+290",
            @"SI" : @"+386",
            @"SK" : @"+421",
            @"SL" : @"+232",
            @"SM" : @"+378",
            @"SN" : @"+221",
            @"SO" : @"+252",
            @"SR" : @"+597",
            @"ST" : @"+239",
            @"SV" : @"+503",
            @"SY" : @"+963",
            @"SZ" : @"+268",
            @"TC" : @"+1649",
            @"TD" : @"+235",
            @"TG" : @"+228",
            @"TH" : @"+66",
            @"TJ" : @"+992",
            @"TK" : @"+690",
            @"TL" : @"+670",
            @"TM" : @"+993",
            @"TN" : @"+216",
            @"TO" : @"+676",
            @"TR" : @"+90",
            @"TT" : @"+1868",
            @"TV" : @"+688",
            @"TW" : @"+886",
            @"TZ" : @"+255",
            @"UA" : @"+380",
            @"UG" : @"+256",
            @"US" : @"+1",
            @"UY" : @"+598",
            @"UZ" : @"+998",
            @"VA" : @"+39",
            @"VC" : @"+1784",
            @"VE" : @"+58",
            @"VG" : @"+1284",
            @"VI" : @"+1340",
            @"VN" : @"+84",
            @"VU" : @"+678",
            @"WF" : @"+681",
            @"WS" : @"+685",
            @"YE" : @"+967",
            @"YT" : @"+262",
            @"ZA" : @"+27",
            @"ZM" : @"+260",
            @"ZW" : @"+263",
        };
    }
    

    或试试这个类别:https://gist.github.com/kukat/ecf0ef352c597178a81c

    来源:http://countrycode.org/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-10
      • 1970-01-01
      相关资源
      最近更新 更多