iOS でキャリア判定の方法です。

CoreTelephony フレームワークを使用して下記のように情報を取得することが出来ます。

#import 
#import 

CTTelephonyNetworkInfo *netinfo = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier *carrier = [netinfo subscriberCellularProvider];
NSLog(@"キャリア名:%@", carrier.carrierName);


上記の NSLog で表示されるキャリア名はソフトバンクなら「ソフトバンクモバイル」、ドコモなら「NTTドコモ」、KDDI なら「KDDI」となります。

CTCarrier クラスのプロパティはそのほかにも Mobile Country Code とか、Mobile Network Code や VOIP が許可されているか、キャリアの国コードなども分かります。

試しに上記コードの carrier の NSLog を取ると下記のような情報が取れます。

2014-02-06 17:05:53.559 Carrier[2126:60b] CTCarrier (0x17004e5b0) {
	Carrier name: [ソフトバンクモバイル]
	Mobile Country Code: [440]
	Mobile Network Code:[20]
	ISO Country Code:[jp]
	Allows VOIP? [YES]
}

MCC, MNC の組み合わせでキャリアが判定できるようです。
詳しくは WikiPedia の Mobile Network Code のページをご確認ください。
http://ja.wikipedia.org/wiki/Mobile_Network_Code

ISO Country Code は ISO 3166-1 で決められているようで、WikiPedia に一覧が掲載されています。
http://ja.wikipedia.org/wiki/ISO_3166-1

関連する投稿