Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS how to find country code of the user's phone number?

Tags:

ios

telephony

I have an app that needs to figure out the country code of the phone number the user has. My understanding is that I can't just get the phone number of the user, but, is there a way for example if I have a US phone number to get the country code +1?

I have found multiple answers that claim that using core telephony you can get the country code "+1" but I tried a few and none of them work.

I tried this:

CTTelephonyNetworkInfo *network_Info = [CTTelephonyNetworkInfo new];
CTCarrier *carrier = network_Info.subscriberCellularProvider;
NSString *mnc = [carrier mobileNetworkCode];
NSString *mcc = [carrier mobileCountryCode];    
NSLog(@"country code is: %@, mnc: %@, mcc: %@", carrier.mobileCountryCode, mnc, mcc);

which prints:

"country code is: 310, mnc: 410, mcc: 310"

So, for a US number I would like to get +1.

Is there a way to do this?

EDIT: With further search I found this:

How to map MCC + MNC to users phone country code in iOS objective-C without using Location info?

It might do the trick, but I was looking for a more official way to do this.

like image 561
zumzum Avatar asked Aug 02 '14 13:08

zumzum


1 Answers

You can get the country code with:

NSString *cc = [carrier isoCountryCode];

Which will give you US for a USA based device. You can map from country code to country phone code via the JSON data available on this.

like image 50
Ben Dowling Avatar answered Oct 06 '22 00:10

Ben Dowling