1. 程式人生 > >iOS獲取運營商資訊(IMSI)

iOS獲取運營商資訊(IMSI)

關於獲取運營商資訊,需通過CoreTelephony.framework,記得在工程新增。我們用到的是CTTelephonyNetworkInfo和CTCarrier這兩個類,這些在iOS 4.0之後就有了。

名詞解釋
IMSI:International Mobile Subscriber Identification Number 國際移動使用者識別碼

IMSI分為兩部分:

  1. 一部分叫MCC(Mobile Country Code
    移動國家碼),MCC的資源由國際電聯(ITU)統一分配,唯一識別移動使用者所屬的國家,MCC共3位,中國地區的MCC為460

  2. 另一部分叫MNC(Mobile Network Code 行動網路號碼),用於識別移動客戶所屬的行動網路運營商。MNC由二到三個十進位制陣列成,例如中國移動MNC為00、02、07,中國聯通的MNC為01、06、09,中國電信的MNC為03、05、11

    由1、2兩點可知,對於中國地區來說IMSI一般為46000(中國移動)、46001(中國聯通)、46003(中國電信)等

下面附上我在專案中使用的程式碼:
記得匯入標頭檔案:

#import <CoreTelephony/CTCarrier.h>
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
+ (NSString *)getIMSI{

    CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init];

    CTCarrier *carrier = [info subscriberCellularProvider];

    NSString
*mcc = [carrier mobileCountryCode]; NSString *mnc = [carrier mobileNetworkCode]; NSString *imsi = [NSString stringWithFormat:@"%@%@", mcc, mnc]; return imsi; }