プログラムでiPhoneの携帯電話会社を知る方法はありますか?
iPhoneが接続されているキャリア名を探しています。
iOS 4 では、CoreTelephony フレームワークが使用可能です。キャリア名を取得するためのスニペットを次に示します。
CTTelephonyNetworkInfo *netinfo = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier *carrier = [netinfo subscriberCellularProvider];
NSLog(@"Carrier Name: %@", [carrier carrierName]);
[netinfo release];
CoreTelephony にリンクし、ヘッダーに含めます。
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
#import <CoreTelephony/CTCarrier.h>
ここでメモしておきます。この API をさまざまな SIM でテストしたところ、iPhone がロックされているオペレーターの名前が [carrercarrierName] で返されるようです!!
これを 2 つの iPhone でテストしました。1 つはロックされ、もう 1 つはロックされていません。ロックされたものについては、SIM プロバイダーに関係なく、テスト アプリを実行するたびに、ロックされているオペレーターの名前が返されます。ただし、MNC は変更されることに注意してください。
キャリア名を取得するためのパブリック API はありません。App Store で公開する必要がない場合は、プライベート API の使用を検討できます。
VVCarrierParameters.h
VisualVoiceMail パッケージには、必要なcarrierServiceName
クラス メソッドがあるようです。そのヘッダーをプロジェクトにドロップして、 を呼び出します[VVCarrierParameters carrierServiceName]
。
これを行うと、アプリが拒否される可能性が高いことに注意してください。
そのような方法もありますが、iOS 4 でしか利用できないため、それ以前のバージョンでは使用できません。そして、これはおそらく下位互換性も壊します。