Get Network MNC and MCC

Sahil Khanna picture Sahil Khanna · Nov 9, 2011 · Viewed 9.9k times · Source

I know I can get the carriers Name, MNC and MCC using the following properties of the CTCarrier Class

carrierName
mobileCountryCode
mobileNetworkCode

These details are of the SIM inserted into the device. Is there a way to get similar details of the network used by the device?

Example: The SIM MCC and MNC are 404 and 02. The Network MCC and MNC could be 404 and 02, 404 and 03 etc.


Edit: Here's what I want.

I have a sim card of Vodafone of location x. The MCC and MNC is 404 and 30 respectively. Now if I travel to location y, my sim may latch to either Vodafone or some other network (sometimes called roaming)

Now I want to get the details of the network my sim is latched to!!

Answer

Suresh D picture Suresh D · Nov 9, 2011

In the words of John Muchow, from his article here:

With the release of iOS 4, Apple introduced two new frameworks for obtaining carrier information. CTCarrier offers information about the cellular provider including the carrier name, Mobile Network Code and Mobile Carrier Code. CTTelephonyNetworkInfo is the channel to access information through CTCarrier, this class also provides an update notifier if you need to detect changes to a changes in cellular provider information, for example, if the user swaps out there SIM card.

// Setup the Network Info and create a CTCarrier object
CTTelephonyNetworkInfo *networkInfo = [[[CTTelephonyNetworkInfo alloc] init] autorelease];
CTCarrier *carrier = [networkInfo subscriberCellularProvider];

// Get mobile country code 
NSString *mcc = [carrier mobileCountryCode];
if (mcc != nil)
   NSLog(@"Mobile Country Code (MCC): %@", mcc);

// Get mobile network code
NSString *mnc = [carrier mobileNetworkCode];
if (mnc != nil)
   NSLog(@"Mobile Network Code (MNC): %@", mnc);