Get Network MNC and MCC

10.3k views Asked by At

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!!

2

There are 2 answers

1
Martin Gordon On BEST ANSWER

It doesn't look like it's currently possible (iOS 5.0).

The CoreTelephony framework is where you would find this API, and as you (and Apple's documentation) mention, the CTCarrier properties only get you details for the user's cellular service provider, not the current network.

You should file an enhancement request with Apple at http://bugreport.apple.com and hopefully they include what you're looking for in a future OS update.

Out of curiosity, what are you trying to do with this information?

2
Suresh D On

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);