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